1

上下文

  • 我在这里找到了这个问题,但我的问题不同。

  • 所以我们使用Katharsis Controllerand Spring Data Rest

  • 我们只有 1 个控制器用于整个应用程序,然后请求将被发送到Spring Data Rest存储库类。

  • 我们想用来Spring Restdoc生成需要我们用MockMvc.

  • 但是在使用时Mockmvc,它会启动容器并需要设置数据源。

  • 如果我们使用standaloneSetup()并传递模拟存储库类,则MockMvc不会加载Katharsis Controller,因此请求不会到达该存储库。

  • 我知道我们可以创建一个内存数据库,但是我们的项目很大,并且数据库需要创建大量的表,我们希望避免这种情况,因为这些测试是出于文档目的。

问题

有什么方法可以实现这一点并且只模拟目标存储库类?

笔记

存储库是CrudRepositorySpring DataRest.

4

1 回答 1

1
  1. 正如 Andy Wilkinson 建议的那样,您可以考虑创建单元测试,在其中您自己将 bean 连接在一起并使用 MokMvc 独立设置。

  2. 如果您想创建集成测试并创建 Spring Context,可以使用@Primary,@ActiveProfiles@Profile注释来伪造 Spring bean。我用 GitHub 示例写了一篇博客文章如何做到这一点。您只需要将这种方法与WebApplicationContext基于MockMvc设置的设置相结合。它没有问题,我过去写过这样的测试。

于 2016-01-13T10:51:48.943 回答