環境準備
參考這篇的環境設定
測試情境
今天的範例中,有一個domain物件Product,
我們可以透過使用CreateProductUseCase去幫我們建立Product
use case再透過Product Repository將Product物件儲存至資料庫中
以下範例程式:
Product (省略getter, setter)
CreateProductUseCase
ProductRepository (並沒有真的實作儲存至資料庫的那一段程式)
如何測試?
今天我們若想測試CreateProductUseCase的話,該怎麼驗證?
分成兩個方向:
1. ProductRepository的實作細節,對我們現在是做單元測試而非整合測試而言,我不需要去驗證他的邏輯,
所以我們應該mock ProductRepository,最後在verify我們的use case有call ProductRepository的save一次即可
2. 接著第二個問題是怎麼驗證use case幫我們創建Product的行為正確?
我們可以使用ArgumentCaptor,在use case呼叫ProductRepository的save時,把Product抓出來驗證其值即可
範例測試程式如下:
文章標籤
全站熱搜
留言列表