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