SBTUITestTunnel
概述
从 Xcode 7 开始,苹果引入了一个新的 UI 测试功能,正如 Will Turner 在 WWDC 会上所说,在开发者工具中对测试技术的重大扩展。框架易于使用,与 IDE 的集成也很好,但是测试启动的方式存在一个主要问题。测试代码作为一个独立的进程运行,这防止了测试进程与正在测试的应用程序直接共享数据,这使得动态注入数据或模拟网络调用变得困难。
SBTUITestTunnel 扩展了 UI 测试功能,允许动态地
- 模拟网络调用
- 从/到应用沙箱下载/上传文件
- 监控网络调用
- 重写网络调用
- 阻止 Cookie
- 与 NSUserDefaults 交互
- 定义在应用程序目标执行的代码块
- 表格/集合/滚动视图中的精细粒度快速滚动
- CLLocationManager 模拟
- UNUserNotificationCenter 模拟
该库支持并发并行测试,因此可以同时使用多个模拟器。
该库由两个独立的组件组成,它们相互通信,一个在应用程序目标中实例化,另一个在测试目标中实例化。
我是否应该使用这个?
SBTUITestTunnel旨在扩展Apple的XCTest框架,而不是替代它。它归结为XCUIApplication的一个子类,附带上面列出的额外功能,因此它非常容易与您现有的测试代码集成。
文档
其他资源?
我们提供额外资源以改善UI测试体验
- Mendoza:在多个物理机器上并行UI测试
- Cachi:解析Xcode 11的.xcresult包
- SBTUITestTunnelHost:从您的测试目标访问mac主机
感谢
感谢以下pods的开发者,我们在SBTUITestTunnel中使用这些pods
贡献
欢迎贡献!如果您有bug需要报告,请随意打开新问题或发送拉取请求以帮助解决问题。
作者
许可协议
SBTUITestTunnel遵循Apache License,版本2.0。有关更多信息,请参阅LICENSE文件。