gpt4 book ai didi

ios - 测试运行时如何在 Xcode UI 测试中模拟网络请求?

转载 作者:可可西里 更新时间:2023-11-01 05:33:05 25 4
gpt4 key购买 nike

我们为使用 KIF 编写的应用程序提供了一套 UI 测试我想将其转换为使用新的 Xcode UI 测试框架。

该应用程序是 Rest AI 的客户端,我们目前通过使用 NSURLProtocol 模拟其响应以响应 GET、POST、PUT 等提供预定义的 JSON 文件...所有测试均使用中的数据定义这些文件,所以我想继续使用它们。服务器上的相同端点在测试的不同点返回不同的数据,所以我不能预先模拟它们,我需要能够在测试运行时调用一个方法来模拟服务器的下一个响应。

不幸的是,在 Xcode UI 测试中使用 NSURLProtocol 不会影响被测试的应用程序,而且我只看到通过启动参数或环境向应用程序发送数据的方法,例如 this answer .我需要在测试期间的不同阶段以不同方式模拟它们。如何以在测试期间更改的方式从 UI 测试内部模拟网络请求?或者我如何与正在测试的应用程序通信,以便让它自己模拟请求?

最佳答案

我们在纯 Swift 中开发了一个嵌入式 HTTP 服务器,您可以在测试用例中使用简单的模拟响应处理程序运行 HTTP 服务器,然后通过 API_BASE_URL 等环境变量将 URL 传递给目标应用。我写了一篇关于如何做的文章

Embedded web server for iOS UI testing

基本上有两个库,一个是Embassy ,它是简单的异步 HTTP 服务器。另一个是 Ambassador ,一个用于模拟 API 端点的简单 Web 框架。

关于ios - 测试运行时如何在 Xcode UI 测试中模拟网络请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36768883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com