• <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測試全面解析(19)

    發表于:2017-03-31來源:51CTO作者:朱先忠點擊數: 標簽:單元測試iOS
    現在再來運行上面的測試︰它現在大約需要一秒鐘即會失敗;它的失敗是因為請求失敗了,而不是因為測試運行超時。 修復上面的url,然后再一次運行測試

    現在再來運行上面的測試︰它現在大約需要一秒鐘即會失敗;它的失敗是因為請求失敗了,而不是因為測試運行超時。

    修復上面的url,然后再一次運行測試,以確認它現在能夠成功通過測試。

    偽造對象和交互

    異步測試能夠給你信心——你的代碼會為一個異步API提供正確的輸入。你可能也想測試您的代碼能夠正常工作——當它從URLSession接收輸入時,或當它正確更新了UserDefaults或者CloudKit數據庫時。

    大多數應用程序都會與系統或庫對象(你不能控制這些對象)進行交互,而與這些對象的交互測試很可能是極其緩慢的,而且不可重復的——這正違反了文章開始時FIRST原則中的兩條。相反,你可以偽造這些交互——通過從代理(stub)中獲取輸入或更新模擬對象(Mock Object)來實現。

    當您的代碼依賴于一個系統或庫中的對象時,通過上面偽造的辦法可以創建一個假的對象來實現那一部分功能并把這種偽造注入到您的代碼中。喬恩·里德的依賴性注入技術文章(https://www.objc.io/issues/15-testing/dependency-injection/)中就介紹了好幾種方法來達到這一目的。

    從代理(stub)中偽造輸入

    在本節中的測試中,你將要檢查應用程序的updateSearchResults(_:)方法能夠正確解析由會話下載的數據——通過檢查屬性searchResults.count的值是正確的來實現。SUT是視圖控制器;你要使用代理(stub)技術來偽裝一個會話和一些預先下載的數據。

    為此,從“+”菜單下選擇命令“New Unit Test Target…”并命名它為HalfTunesFakeTests。然后,在import語句的下面導入HalfTunes程序:

    
    
    1. @testable import HalfTunes 

    接下來,聲明SUT,并在setup()方法中創建它,且在tearDown()方法中對之進行釋放:

    原文轉自: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>