我有一個服務層和一個領域層。我使用普通的本地Spring存儲庫作爲域層,在我的測試設置中,我使用dbunit
來嘲弄數據庫。服務層測試:使用dbUnit時是否還在進行單元測試,而不是模擬原生的Spring域層?
@Repository
public interface ExampleRepository extends PagingAndSortingRepository<ExampleEntity, Long>, JpaSpecificationExecutor<ExampleEntity> {
}
當然我會假設Spring存儲庫實現沒有錯誤,因此域圖層不受測試。
我對單元測試的一般知識是,在爲我的服務層編寫單元測試時,我需要模擬我的域層。
我假設領域層不需要測試,而事實上,我用dbunit
來模擬我的數據庫,我可以使用這個設置來對我的服務層進行單元測試嗎?
謝謝,是的,你正確地理解了一切。是的,我看到了這個問題。我想我會嘲笑域圖層並進行乾淨的單元測試。這樣,測試類也看起來更清潔。無論如何,我將通過我的REST界面進行集成測試。假設,在使用整個春天環境時它仍然是一個單元測試嗎? –
如果我不得不使用spring context,我傾向於說它仍然是一個集成測試。在我對Spring的經驗中,我已經能夠在服務層上編寫單元測試,而不需要提高上下文,但我不會在這個問題上着迷。通常我使用基於構造函數的注入,創建類並在創建類時通過模擬更容易。最後,如果你可以有效地模擬其他層,它將主要作爲一個單元測試。 –