簡體   English   中英

在 XCTestCase 中對同一測試運行迭代測試

[英]Run iterative tests in XCTestCase on the same test

我正在嘗試在 XCTestCase 中運行 UI 測試,當我運行它時,我想使用多個不同的輸入多次運行它。 是否有一種直接的方法可以使用不同的輸入多次運行測試?

我想用不同的輸入運行測試,但只寫一次測試。 這方面的一個例子是我試圖傳遞不同的用戶名來驗證行為。

這有點草率,因為它不必要地在開始時執行一次setUp() ,否則可以完成工作...

func testLoop() { 
    for parameter in myParameters {
       setUp()
       testToBeLooped(parameter: parameter)
       tearDown()
    }
}

我建議不要在同一個測試中直接為每個輸入運行斷言,而是使用XCTContext.runActivity為每個參數輸入指定活動名稱:

func testToBeLooped(parameter: Int) {
    print(parameter)
    XCTAssertEqual(0, parameter % 2)
}

func testLoop() {
    let myParameters = [1, 2, 3]
    for parameter in myParameters {
        XCTContext.runActivity(named: "Testing for parameter \(parameter)") { activity in
            setUp()
            testToBeLooped(parameter: parameter)
            tearDown()
        }
    }
}

這使您可以准確地可視化測試報告中哪些輸入參數未通過斷言以及哪些斷言失敗:

用活動測試斷言

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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