Unit test with async functions

iOS Unit test

在寫 Unit test 的時候,有時候會遇到要測試的 function 是 async 的,

但在 Unit test 的 function 之中,它本身就是走單一 thread 來決定測試結果;

若沒有多做其他處理,closure 或是其他 thread 做的事情,便不會反應到結果上。

所以我們需要告知 Unit test,要等待一下我們要測的內容。

建立一個 expectation,並在 closure 裏頭執行一些測試結果判斷,

判斷完後,補上 exp.fulfill() 來告知 waitForExpectations 可以結束等待。

這樣就可以做 async functions 的 Unit test 了~