【注】SUT(被測系統)是視圖控制器,因為HalfTunes工程中擁有大量的視圖控制器問題——所有的工作都是在文件searchviewcontroller.swift中完成的。“將網絡代碼移動到單獨的模塊”(詳見文章http://williamboles.me/networking-with-nsoperation-as-your-wingman/)將會減少這一問題,而且也使測試更為容易。
接下來,您將需要一些樣本JSON數據,供您的偽造的會話提供給你的測試使用。只需要做一少部分工作即可;因此,請限制一下您的來自iTunes的下載結果——在URL字符串的后面添加一個限制串&limit=3:
https://itunes.apple.com/search?media=music&entity=song&term=abba&limit=3
復制此URL并把它粘貼到瀏覽器中。這將下載一個名為1.txt或類似的文件。你可以預覽一下它,以便確認這是一個JSON格式的文件,然后重命名它為abbaData.json,并把該文件添加到HalfTunesFakeTests組中。
HalfTunes項目包含了支持文件DHURLSessionMock.swift。這個文件中定義了一個簡單的協議——DHURLSession,其提供的方法(代理)用于使用一個URL或URLRequest來創建一個數據任務。它還定義了符合該協議的URLSessionMock對象,該對象中提供的初始化器可以讓你使用你選擇的數據、響應和誤差等來創造一個模擬URLSession對象。
現在,我們來構建偽造的數據和響應,并創建偽造的會話對象;這些都實現于方法setup()中,相應的代碼位于創建SUT對象的語句之后:
原文轉自:http://mobile.51cto.com/iphone-535758.htm