簡體   English   中英

如何在模擬存儲庫中使用MockMvc?

[英]How to use MockMvc with mocked repository?

Conext

  • 我在這里找到了這個問題但是我的問題有所不同。

  • 因此,我們正在使用Katharsis ControllerSpring Data Rest

  • 我們只有1個用於整個應用程序的控制器,然后該請求將發送到Spring Data Rest存儲庫類。

  • 我們想使用Spring Restdoc生成文檔,這需要我們使用MockMvc編寫單元測試。

  • 但是,當使用Mockmvc ,它將啟動容器並需要設置數據源。

  • 如果我們使用standaloneSetup()並傳遞MockMvc存儲庫類,則MockMvc將不會加載Katharsis Controller ,因此請求將不會到達該存儲庫。

  • 我知道我們可以創建一個內存數據庫,但是我們的項目很大,並且數據庫需要創建大量表,我們希望避免這樣做,因為這些測試是出於文檔目的。

有什么方法可以做到這一點,並且只模擬目標存儲庫類嗎?

注意

CrudRepository存儲庫是指Spring DataRest CrudRepository接口。

  1. 正如安迪·威爾金森(Andy Wilkinson)所建議的那樣,您可以考慮創建單元測試,在該單元測試中,您可以自己將bean連接在一起並使用MokMvc獨立設置。

  2. 如果您仍然想創建集成測試並創建Spring Context,可以使用@Primary@ActiveProfiles@Profile批注來偽造Spring bean。 我用GitHub示例寫了一篇博客文章如何做到這一點 您只需要將此方法與基於WebApplicationContextMockMvc設置相結合。 我以前寫過這樣的測試,但沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM