在XCTestCase期间切换互联网可用性

时间:2017-05-08 21:31:07

标签: ios swift xcode xctest xctestcase

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

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

1 个答案:

答案 0 :(得分:0)

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

有这样的库,但是许多人可能更关注控制响应内容,而不是完全通过不响应或延迟响应来解决请求。

通常情况下,如果您将网络推送到您控制的协议的另一端,您最终会得到更好的保理和更接近,更简单的接缝 - 并且可以在测试时轻松提供不同的实现。