簡體   English   中英

如何測試N秒后是否未調用方法?

[英]How to test if a method isn't called after N seconds?

我正在編寫一些測試,我需要檢查當應用程序收到請求時“什么也沒有發生”,該請求必須完全忽略。 知道是否忽略請求的方法是檢查發送請求后必須什么都不接收的兩個委托。

我不知道該如何測試:

func testIgnore() {

    sut.message() {
        //this doesn't have to be called if test succeed
    }

    sut.appointment() {
        //this doesn't have to be called if test succeed
    }

    stub(isHost("test.com")) { (request: NSURLRequest) -> OHHTTPStubsResponse in
        let data = "specific data".dataUsingEncoding(NSUTF8StringEncoding)
        return OHHTTPStubsResponse(data: data!, statusCode: 200, headers: nil)
    }

}

任何想法?? 我完全迷失了,因為我不能使用期望,因為如果期望超時是失敗的測試,而這種情況將是成功的測試...

我需要等待3秒鍾,如果未調用塊,則表示成功

在您不希望被調用的兩個方法中添加XCTFail() ,因此如果調用它們,測試將失敗。

然后只需使用XCTest方法進行異步測試即可等待3秒鍾,例如:

let exp = self.expectationWithDescription("3 seconds passed")
dispatch_after(…3 seconds…, dispatch_get_main_queue()) {
  exp.fulfill()
}
self.waitForExpectationsWithTimeout(4)

⚠️這是偽代碼,因為我在iPhone上,所以在那里很難寫長代碼,而且我可能在方法名稱中做了一些錯別字。 根據需要進行調整。


PS:我不知道這個問題與OHHTTPStubs ,順便說一句。 您所有的問題是“如何測試N秒后是否未調用方法”…

暫無
暫無

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

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