网络测试:请求、响应与闭包处理
1. 测试应关注关键因素
在进行测试时,使用 XCTAssertEqual(_:_:) 可以快速比较两个可相等的对象,但有时这种严格的相等性检查可能过于苛刻。例如,在URL中查询项的顺序并不影响其功能,如果因为交换了媒体和术语查询项而导致测试失败,这样的测试会阻碍代码重构。
我们需要的测试应该对关键因素敏感,而对无关紧要的因素不敏感。对于URL的测试,可以考虑从URL构建 URLComponents ,然后测试组件的 queryItems 是否包含预期的查询项,而不必考虑它们的顺序。
以下是一些关键要点总结:
| 要点 | 说明 |
| ---- | ---- |
| 测试间谍(Test Spy) | 记录接收到的方法调用,用于验证系统是否按预期调用它,以及组件之间的通信 |
| 避免使用布尔标志 | 不要用布尔标志记录测试间谍的调用,应增加调用计数以了解方法被调用的次数 |
| 模拟对象(Mock Object) | 是一种能自行进行断言的测试间谍,可简化测试代码并改进失败报告 |
| 辅助方法 | 可以调用 XCTest 断言,获取调用点的文件名和行号作为函数参数并传递给断言 |
| 测试敏感性 | 测试应关注关键因素,对于顺序无关的数据,避免使用相等性断言,以免产生误判 |
2. 网络测试活动步骤
几乎每个应用都涉及网络操作,可以按照以下步骤进行测试:
1. 替换单例引用
网络测试:请求、响应与闭包的全面处理
超级会员免费看
订阅专栏 解锁全文
2486

被折叠的 条评论
为什么被折叠?



