【发布时间】:2017-02-01 13:27:32
【问题描述】:
我是 Swift 单元测试的新手。现在我想测试我的 viewController。在 viewDidLoad 我有一个异步调用。因此,如果我想测试我的控制器是否正确加载了数据,则数据没有加载。我已经读到我必须构建一个 XCTestExpectation。
所以我掌握的信息,是从这个问题中得到的:XCTest Unit Test data response not set in test after viewDidLoad
答案有一个例子,我不知道如何实现。我的测试类如下所示:
import XCTest
@testable import apirequest
class SearchedForViewControllerTests: XCTestCase {
var vc: SearchedForViewController!
override func setUp() {
super.setUp()
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
vc = storyboard.instantiateViewController(withIdentifier: "SearchedForViewController") as! SearchedForViewController
vc.passedString = "garten"
let _ = vc.view
}
func testArticlesShwon() {
print(vc.tableView.numberOfRows(inSection: 0))
}
}
因此,如果我查看自己的代码,viewDidLoad 的部分发生在
let _ = vc.view
如果我想建立一个期望,我必须等待这部分。但该部分不是函数。所以我不知道如何告诉我的期望在加载后实现。
【问题讨论】: