• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • iOS單元測試和UI測試全面解析(15)

    發表于:2017-03-31來源:51CTO作者:朱先忠點擊數: 標簽:單元測試iOS
    waitForExpectations(timeout:5,handler:nil) } 上面這個測試的目的是檢查發送到iTunes的有效的查詢是否能夠返回狀態碼200。顯然,其中大部分代碼與你在上面應用程序
      waitForExpectations(timeout: 5, handler: nil) 
  • 上面這個測試的目的是檢查發送到iTunes的有效的查詢是否能夠返回狀態碼200。顯然,其中大部分代碼與你在上面應用程序中所寫的一樣,只是增加了如下幾行︰

    1.expectation(_:)返回一個XCTestExpectation對象;此對象存儲在變量promise中。此對象的其他常用名字是expectation和future。另外,description參數描述了你期望發生的事情。

    2.為了匹配description參數,您需要在異步方法的完成處理程序的成功條件閉包中調用promise.fulfill()。

    3.waitForExpectations(_:handler:)的作用是保持所有測試在運行中,直到所有的期望得以實現,或者timeout值指定的時間間隔結束——無論兩者哪一種早發生都行。

    現在,再來運行該測試。如果你已經連接到互聯網,則當應用程序在模擬器中加載后成功測試大約花費一秒鐘時間。

    使測試失敗更快一些

    測試失敗會導致不少問題,但它未必花費很多時間?,F在,我們來解決如何快速確定是否您的測試失敗的問題。

    為了修改一下您的測試,從而導致異步操作時失敗,你只需要從下面的URL中刪除“itunes”一詞后面的s字母即可:

    
    
    1. let url = URL(string: "https://itune.apple.com/search?media=music&entity=song&term=abba"

    運行上述測試時︰它會失敗,而且此測試會花費所有指定的超時間隔時間!這是因為它的期望是請求成功——正是在這個位置調用了promise.fulfill()方法。既然請求失敗,那么測試僅當在超過指定時限時才結束。

    原文轉自:http://mobile.51cto.com/iphone-535758.htm

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>