簡體   English   中英

Swift單元測試-等待viewDidLoad

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM