[英]How to use MockMvc with mocked repository?
Conext
因此,我們正在使用Katharsis Controller
和Spring Data Rest
。
我們只有1個用於整個應用程序的控制器,然后該請求將發送到Spring Data Rest
存儲庫類。
我們想使用Spring Restdoc
生成文檔,這需要我們使用MockMvc
編寫單元測試。
但是,當使用Mockmvc
,它將啟動容器並需要設置數據源。
如果我們使用standaloneSetup()
並傳遞MockMvc
存儲庫類,則MockMvc
將不會加載Katharsis Controller
,因此請求將不會到達該存儲庫。
我知道我們可以創建一個內存數據庫,但是我們的項目很大,並且數據庫需要創建大量表,我們希望避免這樣做,因為這些測試是出於文檔目的。
題
有什么方法可以做到這一點,並且只模擬目標存儲庫類嗎?
注意
我CrudRepository
存儲庫是指Spring DataRest
CrudRepository
接口。
正如安迪·威爾金森(Andy Wilkinson)所建議的那樣,您可以考慮創建單元測試,在該單元測試中,您可以自己將bean連接在一起並使用MokMvc獨立設置。
如果您仍然想創建集成測試並創建Spring Context,可以使用@Primary
, @ActiveProfiles
和@Profile
批注來偽造Spring bean。 我用GitHub示例寫了一篇博客文章如何做到這一點 。 您只需要將此方法與基於WebApplicationContext
的MockMvc
設置相結合。 我以前寫過這樣的測試,但沒有任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.