注意,你仍然要以異步方式來編寫這個測試,因為代理(stub)假裝自己是一個異步的方法。
上面代碼中,when斷言的作用是:在數據任務運行之前searchResults的值應當是空的——這應該是真實情況,因為您在setup()方法中創建了一個全新的SUT。
偽造的數據包含了提供給三個跟蹤(Track)對象使用的JSON數據;所以,then斷言的作用是:視圖控制器的searchResults數組應當包含三項。
再次運行該測試。這次應該成功,而且速度很快,因為不存在任何真實的網絡連接!
偽造對模擬對象的更新
以前的測試使用代理從假對象提供輸入。接下來,你可以使用一個模擬對象來測試你的代碼可以正確更新UserDefaults。
重新打開BullsEye項目。注意到,該應用程序提供了兩種游戲風格:用戶可以選擇移動滑塊來匹配目標值或從滑塊位置猜測目標值。借助于界面右下角的分段控制開關可以切換游戲風格并更新用戶默認的游戲風格。
你要編寫的下一個測試將檢查應用程序能夠正確地更新用戶默認的游戲風格數據。
在測試導航器中,點擊命令“New Unit Test Target…”,并命名為BullsEyeMockTests。然后,在導入語句下面添加以下內容:
原文轉自:http://mobile.51cto.com/iphone-535758.htm