1

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

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

是否有人熟悉模拟用于单元测试的网络可达性变化?我目前正在使用 Kiwi 进行单元测试和OHHTTPStubs模拟从webservice.

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

4

1 回答 1

0

我自己用苹果的单元测试框架做这个。我使用了一个单独的类进行测试,它不使用可达性,但可以是测试工具的消息,以模拟网络启动或关闭通知。您可能需要重组您的主要代码以支持这一点。

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

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

于 2013-05-29T12:04:08.090 回答