我们正在尝试创建一个单元测试(尽管使用 OCMock,但对其他框架开放),它模拟一个在类加载时有副作用的类。
我们有一个跟踪类,它封装了对 Flurry 等其他跟踪库的调用。
许多其他跟踪库(特别是 Flurry)在类初始化时执行代码。
单元测试失败,因为代码无法在单元测试环境中执行。理想情况下,我们想用模拟/存根替换 Flurry 类。
- (void) testConstruction {
[Flurry class];
}
当调用此代码时,它会尝试使用SCNetworkReachability
并接收exceptions
...
我们如何存根/模拟对具有如下静态实现的 Flurry 的调用?
[Flurry setAppVersion:@"1.0"];
[Flurry setCrashReportingEnabled:NO];