給定以下包含Task的方法。
self.interactor被嘲笑。
func submitButtonPressed() {
Task {
await self.interactor?.fetchSections()
}
}
如何撰寫測驗來驗證fetchSections()是從該方法呼叫的?!
我的第一個想法是使用期望并等到它實作(在模擬代碼中)。
但是新的 async/await 有什么更好的方法嗎?
uj5u.com熱心網友回復:
理想情況下,正如您所暗示的,您interactor將使用協議進行宣告,以便您可以替換模擬來進行測驗。然后查詢模擬物件以確認呼叫了所需的方法。通過這種方式,您可以正確地將被測系統的范圍限制為僅回答“是否呼叫了此方法?”的問題。
至于測驗方法本身的結構,是的,這仍然是異步代碼,因此需要異步測驗。所以使用期望并等待它是正確的。您的應用程式使用 async/await 來表達異步性這一事實并不會神奇地改變這一點!(您可以通過撰寫一個創建 BOOL 謂詞期望并等待它的實用方法來減少它的冗長性。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/472027.html
