繁体   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