[英]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.