我们已经为使用KIF编写的我们的应用程序开发了一套UI测试,我希望将其转换为使用新的Xcode UI测试框架。如何在测试运行时在Xcode UI测试中模拟网络请求?
该应用程序是一个Rest AI的客户端,我们当前正在使用NSURLProtocol为响应GET,POST,PUT等服务预定义的JSON文件而嘲笑其响应。所有测试均使用数据定义在这些文件中,所以我想继续使用它们。服务器上的相同端点在测试中的不同位置返回不同的数据,所以我不能在前面模拟它们,我需要能够在测试运行时调用方法来模拟服务器的下一个响应。
不幸的是,在Xcode UI测试中使用NSURLProtocol不会影响测试的应用程序,我只能看到通过启动参数或环境将数据发送到应用程序的方式,例如this answer。我需要在测试过程中的不同阶段以不同的方式嘲笑他们。我如何在测试过程中以改变的方式在UI测试中模拟网络请求?或者,我如何与正在测试的应用程序进行通信,以便我可以嘲笑请求本身?
OHHTTPStubs和NSURLSession对我没有用,因为我的测试运行在我希望测试的应用程序的另一个应用程序中。 launchEnvironment属性对我无用,因为我无法在中间测试中对其进行更改。 – Simon