我尝试执行一组需要不同网络连接状态的单元测试。如何在使用XCTest(在Swift中)模拟离线iOS设备?
由于
答案 0 :(得分:0)
解决此问题的方法不止一种。
Mocking / Stubbing就是其中之一,您可以使用像OCMock或OCMockito这样的模拟框架,强制该方法返回每次测试所需的内容。
替代的“经典”方法(我更喜欢)是实现一个存根/虚拟类,它与网络类共享相同的API,并再次返回每个测试所需的内容。
差异主要是philosophical nature
最重要的是,您需要一种方法来强制API返回您要测试的内容。
答案 1 :(得分:0)
为了获得真实的情况,例如丢包,延迟,您可以安装网络链接调节器(从Apple download center获取),但会影响您的电脑和模拟器。此外,您需要使用异步测试(check XCTestExpectation at this tutorial)才能等待响应或超时。
要进行快速简单的测试,您可以在iphone上运行单元测试,并将iphone简单设置为飞行模式。