Conext如何在模拟库中使用MockMvc?
我发现这个问题here但我的问题是不同的。
所以我们使用
Katharsis Controller
和Spring Data Rest
。我们只有1个控制器的整个应用程序,然后请求将被发送到
Spring Data Rest
存储库类。我们希望使用
Spring Restdoc
来生成需要我们用MockMvc
编写单元测试的文档。但是,当使用
Mockmvc
时,它启动容器并需要设置数据源。如果我们使用
standaloneSetup()
并通过嘲笑库类,然后MockMvc
将不会加载Katharsis Controller
,因此,请求不会达到该资源库。我明白我们可以创建一个内存数据库,但是我们的项目很大,数据库需要大量的表来创建,我们希望避免这种情况,因为这些测试是为了文档目的。
问题
有什么办法来实现这一点,只是嘲笑目标库类?
注意
通过库我的意思是Spring DataRest
CrudRepository
接口。
我对你的应用程序的描述有点困惑。您的KatharsisContoller处理每个请求并调用各种Spring Data存储库,还是您还使用由Spring Data REST自动生成的一些控制器?如果是后者,嘲笑那些自动生成的控制器对我来说不是一个好主意,因为它可能导致您的文档与实际服务不同步。 –
@AndyWilkinson没有前者是如此。所以KatharsisController决定调用什么所谓的json版本库,并且每个json版本库都调用相关的S Data repository。所以S.Data存储库到最后,我们不需要测试它们,但我们想要模拟这些存储库。 – xbmono
听起来好像需要使用'standaloneSetup'并传入已经使用模拟存储库创建的'KatharsisController'实例。 –