Swift 单元测试 - 等到服务响应
Posted
技术标签:
【中文标题】Swift 单元测试 - 等到服务响应【英文标题】:Swift Unit test - Wait until service response 【发布时间】:2015-08-27 20:38:13 【问题描述】:我正在尝试从我的应用程序中进行单元测试。我的应用程序包括服务集成。我正在为此任务实现一个适配器,我需要等待服务响应来处理响应,然后验证响应对象。
我有 2 个在服务响应到达时调用的委托函数。
func didReceiveAPIResults(#results: AnyObject, path: String, serverTag: String)
func didReceiveAPIResultsFailed(#error: NSError, errorObject: AnyObject, path: String, serverTag: String)
我需要处理前面函数中的响应,然后完成单元测试。
如何指定?
【问题讨论】:
【参考方案1】:依赖于外部 API 的测试算不上是“单元”测试。为您的适配器实现测试替身以返回一致的响应可能更可靠。这样的 double 可能能够通过立即调用您的委托方法来提供同步接口。
如果您确实需要测试异步行为,XCTest 为Writing Tests of Asynchronous Operations 提供了XCTestExpectation
。大多数第三方测试库也提供类似的东西。
【讨论】:
我理解您的观点,但我需要测试所有应用程序集成。我需要测试应用流畅度,模拟按钮触摸等。 当以多种方式模拟服务响应以根据响应的结果模拟不同的行为时,您可以更好地测试所有应用程序的功能。您的集成 (!) 测试将运行更长时间,并且当响应因真实数据而不同时,它们会更频繁地中断。 抱歉,找不到该页面:(以上是关于Swift 单元测试 - 等到服务响应的主要内容,如果未能解决你的问题,请参考以下文章