Conext
我发现了这个问题here,但问题不同了。
因此我们正在使用Katharsis Controller
和Spring Data Rest
。
我们只有1个控制器用于整个应用程序,然后请求将被发送到Spring Data Rest
存储库类。
我们希望使用Spring Restdoc
生成文档,要求我们使用MockMvc
编写单元测试。
但是当使用Mockmvc
时,它会启动容器并需要设置数据源。
如果我们使用standaloneSetup()
并传递模拟的存储库类,则MockMvc
将无法加载Katharsis Controller
,因此请求将无法访问该存储库。
我知道我们可以创建一个内存数据库,但是我们的项目很大,数据库需要创建大量的表,我们要避免这些表,因为这些测试是出于文档目的。
问题
有没有办法实现这一点,只模拟目标存储库类?
注意
按存储库,我的意思是CrudRepository
中的Spring DataRest
接口。
答案 0 :(得分:1)
正如Andy Wilkinson建议的那样,你可以考虑创建单元测试,你可以自己将bean连接在一起并使用MokMvc独立设置。
如果你想创建集成测试并创建Spring Context,可以使用@Primary
,@ActiveProfiles
和@Profile
注释来伪造Spring bean。 I wrote a blog post with GitHub example how to do it。您只需将此方法与基于WebApplicationContext
的{{1}}设置相结合即可。它没有问题,我过去写了这样的测试。