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

2023-12-25

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


在当前的实现中,这不是directly可以通过 UI 测试实现。框架直接连接到代码的唯一接口是通过它的启动参数/环境 http://masilotti.com/xctest-documentation/Classes/XCUIApplication.html#//api/name/launchArguments.

您可以让应用程序在此上下文中查找特定的键或值并切换某些功能。例如,如果MOCK_REQUESTS键已设置,注入MockableHTTPClient而不是真实的HTTPClient在你的网络层。我写过关于设置参数 http://masilotti.com/ui-testing-xcode-7#launching-the-app-xcuiapplicationNSHipster 有一篇关于如何阅读它们 http://nshipster.com/launch-arguments-and-environment-variables/.

虽然并不理想,但从技术上讲,通过一些跑腿工作就可以实现您正在寻找的目标。

这是一个用于 UI 测试的存根网络数据教程 http://masilotti.com/ui-testing-stub-network-data/我放在一起。它会引导您完成启动和运行该程序所需的所有步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模拟 API 请求 Xcode 7 Swift 自动化 UI 测试 的相关文章

随机推荐

  • ASP.NET MVC Remote属性方法参数总是传递null

    我有这个AdvertiserNameAvailable远程验证属性正在使用的方法 问题是AdvertiserNameAvailable正在调用而不将输入值传递给方法Name范围 当我进入该方法的调试时 我看到Name参数总是null pub
  • 如何在 GitHub Actions 中缓存 dotnet 安装

    我的 CI 管道中有两个步骤 一是缓存dotnet的安装路径 二是dotnet安装 并使用 windows 2019 图像 但系统永远不会识别 net 7可用 它始终安装 net 6 0 缓存还显示缓存了 200MB 但可能某些 PATH
  • 如何处理 iPhone 中 uitableviewcell 上每个按钮的切换按钮

    我的代码运行良好 但仅适用于单个单元格 当我定义 5 行时 它仅适用于最后一个单元格 如果我点击 1 个单元格 则值displayimage仅在最后一个单元格上 它不显示我单击的位置以及我单击的单元格如何处理每个单元格的toogle按钮更改
  • 为什么我要使用 Enumerable.ElementAt() 而不是 [] 运算符?

    这似乎是一个愚蠢的问题 但我还没有找到答案 所以就在这里 在这两种情况下 如果您未能检查集合的边界 您将收到 超出范围 异常 这只是编码风格偏好吗 如果有人需要一个例子 List
  • 制作平台游戏,需要方法停止运行

    我正在用 Flash 制作一个平台游戏 我有一个目标类 该类包含目标精灵的代码 当你击中它时 它会继续游戏的下一部分 在目标构造函数内部 添加了2个事件监听器 它们如下 addEventListener Event ADDED beginC
  • 如何在Boost Spirit中设置最大递归

    使用 boost spirit 如果我有递归规则来解析括号 rule
  • Java - 等待和notifyAll

    当你对一个没有等待的对象调用notifyAll方法时会发生什么 应该有例外还是正常情况 正如您在这里所看到的 对未等待的对象调用notifyAll 不会产生任何效果
  • 如何在 Symfony2 数据库查询中使用 MATCH

    我正在为我的 Symfony2 项目构建一个搜索功能 并为其编写了 SQL 如下所示 SELECT dlc title dlc description dlc keywords FROM ShoutMainBundle Dlc dlc WH
  • 测量外部 CDN 资源的访问者 HTTP 缓存命中率

    我的网站使用几种常见的 CDN 托管资源 例如bootstrap css jquery js and fontawesome css 是否可以通过 JavaScript 获取信息 我的网站访问者在其 Web 浏览器中是否有这些资源的热缓存
  • 以编程方式更改本地安全策略

    我想在 C 中更改本地安全策略 交互式登录 不需要 ctrl alt del 我怎样才能做到这一点 我找到了我必须在注册表中更改的答案 Windows 注册表编辑器版本 5 00 HKEY LOCAL MACHINE SOFTWARE Mi
  • Git 子模块工作流程问题

    最近 我们的 Git 存储库遇到了很多问题 我们是应用程序之间总共 4 个共享存储库的 git 子模块的用户 例如 存储库 网站 共有 3 个子模块 submodule vendor api path vendor api url emai
  • ionChange - 仅检测 Ionic 2 中从视图到模型的变化

    我有一个 Ionic 2 应用程序 允许安排通知 提醒功能 嗯 要求是 当用户进入提醒页面时 应该检查是否有 已保存提醒 如果有已保存的提醒 我目前正在保存此信息 存储 时钟应显示并保存提醒时间 切换开关处于活动状态 否则 时钟应显示当前时
  • 如何消除 WinForms 滚动动画中的抖动现象?

    我正在用 C 编写一个简单的控件 其工作方式类似于图片框 只不过图像不断向上滚动 并从底部重新出现 动画效果由计时器 System Threading Timer 驱动 该计时器从缓存的图像 分两部分 复制到隐藏缓冲区 然后在其 Paint
  • Gradle:“无法缓存配置缓存状态”

    Configuration cache state could not be cached field actions from type org gradle api DefaultTask error writing value of
  • Java 中的 IEqualityComparer 接口

    更具体地说 我想要一个接口来比较只能比较相等性的对象 例如复数 但没有全序 它应该有 注意它只返回一个布尔值是 否 boolean Equals T object1 T object2 和一个哈希码函数 这样 当我使用对象 例如收集 相等
  • 如何使用 Unix 或 Windows 风格的换行符 [重复]

    这个问题在这里已经有答案了 我正在阅读stdin有时有 UNIX 风格的换行符 有时是 Windows 风格的换行符 如何使用任一类型的换行符 假设您知道会有换行符 解决方案是消耗一个字符 然后决定 10 LF Unix style new
  • Mongo 查询数组中的嵌套字段。

    我有一个具有以下结构的文档 id fkwjefioew genres id fewkjfewf name Shooter 我需要能够使用 mongo 的 in 进行查询 以查看文档是否具有传递参数的流派名称 例如 如果我将 Shooter
  • Jest.js 错误:“已收到:序列化为同一字符串”

    我在这个测试中遇到了一个奇怪的问题 交易测试 js import Deal from src models Deal import apiProducts from mocks api products describe Deal gt d
  • Python 浮点精度格式说明符

    假设我有一些 32 位数字和一些 64 位数字 gt gt gt import numpy as np gt gt gt w np float32 2 4 gt gt gt x np float32 4 555555555555555 gt
  • 模拟 API 请求 Xcode 7 Swift 自动化 UI 测试

    在 Swift 2 0 中编写自动化 UI 测试时 有没有办法模拟请求 据我所知 UI 测试应该独立于其他功能 有没有办法模拟服务器请求的响应 以便测试依赖于响应的 UI 行为 例如 如果服务器关闭 UI 测试仍应运行 简单的示例 对于登录