SBTUITestTunnel
概述
Apple 从 Xcode 7 开始引入了一个新的 UI 测试功能,正如 Will Turner 在WWDC 的舞台上所说,是对开发者工具中测试技术的巨大扩展。该框架易于使用,且与 IDE 的集成非常好,然而在测试启动的方式上存在一个主要问题。测试代码作为一个独立的过程运行,这阻止了与测试应用的直接数据共享,使得像动态注入数据或模拟网络调用等活动变得困难。
SBTUITestTunnel 扩展了 UI 测试功能,允许动态地
- 模拟网络调用
- 从/向应用的 sandbox 下载/上传文件
- 监控网络调用
- 重写网络调用
- 阻止 cookie
- 与 NSUserDefaults 交互
- 定义在应用目标中执行的自定义代码块
- 在表/collection/滚动视图中进行细粒度快速滚动
- CLLocationManager 模拟
- UNUserNotificationCenter 模拟
该库支持并发并行测试,因此可以同时使用多个模拟器。
该库由两个独立的组件组成,它们相互通信,一个用于应用目标,另一个用于测试目标。
我应该使用它吗?
SBTUITestTunnel旨在扩展Apple的XCTest框架,而不是取代它。它只是XCUIApplication的单个子类,具有上述附加功能,因此非常易于与您现有的测试代码集成。
文档
您需要其他资源吗?
我们提供了额外的资源来改善UI测试体验
- Mendoza:在多台物理机上并行化UI测试
- Cachi:解析Xcode的11 .xcresult存档
- SBTUITestTunnelHost:从您的测试目标访问mac主机
感谢
感谢以下pods的开发者,我们将其用于SBTUITestTunnel
贡献
欢迎贡献!如果您要报告错误,请自由地通过打开新问题或发送拉取请求来帮助我们。
作者
许可证
SBTUITestTunnel 在Apache License, Version 2.0许可下可用。有关更多信息,请参阅LICENSE文件。