0

在 XCTestCase 期间,我想以某种方式说“禁用互联网”,它实际上会被禁用。然后稍后我想以某种方式说“启用互联网”,它会回来。关键是要看到我的应用程序在网络请求失败然后成功时表现正常。做这个的最好方式是什么?

打开和关闭飞行模式就足够了,但我不知道有什么方法可以做到这一点。我考虑过创建一个专用模拟器,该模拟器预先配置为禁用互联网,例如打开飞行模式,但这会限制我在一个预先配置的模拟器而不是模拟器(或设备)上运行此测试的能力) 我的选择。

4

1 回答 1

0

由于您直接使用 NSURLSession,因此侵入性最小的解决方案是劫持 HTTP 和 HTTPS 协议,以便您可以控制 URL 请求的成功和内容。

有这方面的库,但许多库可能更多地关注控制响应内容,而不是通过不响应或延迟响应来完全黑洞化请求。

一般来说,如果您将网络推送到您控制的协议的另一端,您最终会得到更好的分解和更接近、更简单的接缝 - 并且可以在测试时轻松提供不同的实现。

于 2017-05-14T01:04:24.250 回答