可以@SpringBootTest和@WebMvcTest共存

时间:2019-01-22 10:51:57

标签: spring-boot spring-boot-test

我有一个用注释的测试;     @SpringBootTest

和另一个使用@WebMvcTest进行的测试

并且它们不能一起工作,当我移动其中一个时,它们都按预期工作。

有人可以建议一个源树中有两个的关系/问题吗

1 个答案:

答案 0 :(得分:1)

@SpringBootTest加载整个Spring Context。

@WebMvcTest使您可以测试单个Controller类。

如果有完整的上下文可用,为什么需要@WebMvcTest

根本原因是:

  

java.lang.IllegalStateException:配置错误:发现多个   测试类的@BootstrapWith声明

因为注释@SpringBootTest@WebMvcTest的内部都有@BootstrapWith注释,所以不允许。

编辑

回答您的评论: 在这种情况下,我会考虑将其分为两个不同的类。 假设您要测试UserController类。然后,为单元测试创​​建UserControllerTest类,该类用@WebMvcTest(UserController.class)注释,第二个类名为UserControllerIT,用@SpringBootTest注释,并具有一组集成测试。