Afhttpclient单元测试改变了网络可达性



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

我已经实现了一个setReachabilityStatusChangeBlock,并希望确保这得到调用和行为在正确的方式。

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

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

我正在用苹果的单元测试框架做这件事。我使用了一个单独的类进行测试,它不使用可达性,但可以是测试工具的消息,以模拟网络up或down通知。你可能需要重构你的主代码来支持它。

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

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

最新更新