【问题标题】:iOS Mocking Class That Has Side Effects on Class Load对类加载有副作用的 iOS 模拟类
【发布时间】:2014-03-02 11:11:14
【问题描述】:

我们正在尝试创建一个单元测试(尽管使用 OCMock,但对其他框架开放)来模拟一个在类加载时会产生副作用的类。

我们有一个跟踪类,它封装了对 Flurry 等其他跟踪库的调用。

许多其他跟踪库(特别是 Flurry)在类初始化时执行代码。

单元测试失败,因为代码无法在单元测试环境中执行。理想情况下,我们希望将 Flurry 类替换为 mock/stub。

- (void) testConstruction {
    [Flurry class];
}

调用此代码时,它会尝试使用SCNetworkReachability 并接收exceptions...

我们如何存根/模拟对具有如下静态实现的 Flurry 的调用?

[Flurry setAppVersion:@"1.0"];
[Flurry setCrashReportingEnabled:NO];

【问题讨论】:

    标签: ios unit-testing flurry ocmock xctest


    【解决方案1】:

    我会从我用于测试的构建配置中删除 Flurry(从框架搜索路径/库搜索路径中删除它)。我会通过抓取 Flurry 头文件并使用空方法创建自己的实现来创建自己的虚拟 Flurry。最后,如果我关心 Flurry 是否被调用,我会使用 OCMock 来模拟我的假类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多