首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟API请求Xcode 7 Swift自动化UI测试

模拟API请求Xcode 7 Swift自动化UI测试
EN

Stack Overflow用户
提问于 2015-10-08 17:34:10
回答 2查看 2.7K关注 0票数 11

在Swift 2.0中编写自动化UI测试时,有没有办法模拟请求。据我所知,UI测试应该独立于其他功能。有没有办法模拟来自服务器请求的响应,以便测试依赖于响应的UI的行为。例如,如果服务器关闭,UI测试应该仍在运行。快速示例,对于登录,模拟如果密码失败,则UI应显示警报,但是,如果登录成功,则应显示下一页。

EN

回答 2

Stack Overflow用户

发布于 2015-10-08 18:49:31

在它目前的实现中,这不能直接通过UI测试来实现。框架对代码的唯一直接接口是通过它的launch arguments/environment

您可以让应用程序在此上下文中查找特定的键或值,并切换某些功能。例如,如果设置了MOCK_REQUESTS密钥,则在网络层中注入MockableHTTPClient而不是真正的HTTPClient。我写了一篇关于setting the parameters的文章,NSHipster有一篇关于how to read them的文章。

虽然不是很理想,但在技术上可以通过一些跑腿工作来完成您正在寻找的东西。

这是我组装的一个tutorial on stubbing network data for UI Testing。它将引导您完成启动和运行该应用程序所需的所有步骤。

票数 8
EN

Stack Overflow用户

发布于 2016-06-23 23:51:48

如果你担心mock会因为任何原因进入生产环境,你可以考虑使用第三方解决方案,比如Charles Proxy

使用map local工具,您可以将来自特定端点的调用路由到您机器上的本地文件。您可以在本地文件中传递包含您希望其返回的响应的纯文本。根据您的示例:

您的登录名将访问端点yoursite.com/login

在Charles中,您可以使用地图本地工具将到达该端点的呼叫路由到保存在您的计算机上的文件,即mappedlocal.txt

mappedlocal.txt包含以下文本

HTTP/1.1 404失败

当Charles正在运行时,当您命中此端点时,您的响应将返回404错误。

您还可以在Charles中使用另一个名为"map remote“的选项,并构建一个完整的模拟服务器,它可以根据您的需要处理调用和响应。这可能不是你想要的,但这是一个可以帮助别人的选择,也是我自己使用的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33011896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档