【发布时间】:2017-06-03 12:46:10
【问题描述】:
我正在测试我的所有数据是否正确加载到 UIViewController 和 UITableView。
加载数据和填充表格的代码在 myMethod() 内部,它是一个异步调用。
func myMethod() {
reloadModel { ... wait for async callback ... }
}
在我的测试用例中,我正在调用myMethod(),但我不知道如何等待异步调用完成。
//Test Code
func testLoadData() {
let listVC = ListViewController.init(tableView:tableView)
listVC .myMethod()
... here it should wait for the async call...
XCTAssertEqual(...)
}
【问题讨论】:
-
这个测试无论如何都没有意义,因为你不能调用任何包含
did、will和should的委托方法。框架调用这些方法来通知工作流的特定阶段。我怀疑单元测试是否存在显着差异。 -
@vadian 好的,让我们再具体一点。我已经更新了这个问题。假设我现在有一个随机方法 myMethod()。
-
没有这样的选项。您应该考虑如何抽象您的“模型提供者”类并将依赖项注入您的 viewContorller
-
@AntonBelousov 我明白为什么方法现在是错误的了。好的,谢谢。
标签: ios swift unit-testing xctest