afhttpclient单元测试网络可达性的变化

时间:2013-05-29 05:13:31

标签: ios unit-testing connectivity kiwi

我当前的实现是一个AFHTTPClient子类和随附的管理器类,它处理与API的连接。由于应用程序将用于无法保证网络连接的地方,我想围绕处理网络可达性变化的代码编写一些单元测试。

我已经实现了setReachabilityStatusChangeBlock并希望确保调用它并以正确的方式运行。

是否有人熟悉模拟网络可达性的变化以用于单元测试?我目前正在使用Kiwi进行单元测试,OHHTTPStubs用于模拟webservice返回的数据。

测试这些情况的常用方法是什么?

1 个答案:

答案 0 :(得分:0)

我自己用苹果的单元测试框架做这个。我使用了一个单独的类进行测试,它不使用可达性,但可以是测试工具的消息,以模拟网络向上或向下通知。您可能需要重新构建主代码以支持此功能。

编辑:如果你现在有一个处理Reachability的类 - 你将创建一个同名的新类,相同的方法/属性,以及一些允许外部代理告诉该特殊类“假装”的新方法事情发生了变化。因此,该类具有您使用的调用-(void) fakeNetworkStatus:(BOOL)nowUp,而不是真正的可达性事件。因此,测试工具中的代码现在与假的Reachability类进行交互(当然不包括在单元测试中)。

EDIT2:对此有更多的想法。您可以拥有重复的实现文件,但Xcode并不真正支持多个接口文件。我最近做的是创建一个新配置ReleaseForUnitTest,我在其中定义了“UNIT TESTING”。现在,我可以提供仅用于单元测试的代码块或方法原型块。使用它,您可以拥有两个实现文件和一个接口文件。