![](/img/trans.png)
[英]Swift Unit test- How do I assert that a CGColor is what it's supposed to be?
[英]Swift Unit Test- Wait for viewDidLoad
我是Swift中的單元測試新手。 現在,我想測試我的viewController。 在viewDidLoad中,我有一個異步調用。 因此,如果我要測試控制器是否正確加載了數據,則數據沒有加載。 我已經讀過我必須建立在XCTestExpectation中。
所以我從這個問題中得到了信息: viewDidLoad之后,未在測試中設置XCTest單元測試數據響應
答案有一個我不知道如何實現的示例。 我的測試課看起來像這樣:
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
如果我想建立一個Expectation,則必須等待這一部分。 但是該部分不是功能。 所以我不知道如何告訴我的期望在加載后實現。
這可能更多是一個意見/設計答案,但我強烈建議您完全分別測試ViewController和Model。
例如,當您測試VC時,請在測試中手動設置數據,然后單獨進行測試以確保模型和所有聯網/異步調用均正常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.