環境準備

參考這篇的環境設定

 

測試情境

class diagram.png

今天的範例中,有一個domain物件Product,

我們可以透過使用CreateProductUseCase去幫我們建立Product

use case再透過Product Repository將Product物件儲存至資料庫中

以下範例程式:

Product (省略getter, setter)

product.png

CreateProductUseCase

usecase.png

ProductRepository (並沒有真的實作儲存至資料庫的那一段程式)

repository.png

 

如何測試?

今天我們若想測試CreateProductUseCase的話,該怎麼驗證?

分成兩個方向:

1. ProductRepository的實作細節,對我們現在是做單元測試而非整合測試而言,我不需要去驗證他的邏輯,

所以我們應該mock ProductRepository,最後在verify我們的use case有call ProductRepository的save一次即可

2. 接著第二個問題是怎麼驗證use case幫我們創建Product的行為正確?

我們可以使用ArgumentCaptor,在use case呼叫ProductRepository的save時,把Product抓出來驗證其值即可

範例測試程式如下:

test.png

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()