我有一个用注释的测试; @SpringBootTest
和另一个使用@WebMvcTest进行的测试
并且它们不能一起工作,当我移动其中一个时,它们都按预期工作。
有人可以建议一个源树中有两个的关系/问题吗
答案 0 :(得分:1)
@SpringBootTest
加载整个Spring Context。
@WebMvcTest
使您可以测试单个Controller
类。
如果有完整的上下文可用,为什么需要@WebMvcTest
?
根本原因是:
java.lang.IllegalStateException:配置错误:发现多个 测试类的@BootstrapWith声明
因为注释@SpringBootTest
和@WebMvcTest
的内部都有@BootstrapWith
注释,所以不允许。
回答您的评论:
在这种情况下,我会考虑将其分为两个不同的类。
假设您要测试UserController
类。然后,为单元测试创建UserControllerTest
类,该类用@WebMvcTest(UserController.class)
注释,第二个类名为UserControllerIT
,用@SpringBootTest
注释,并具有一组集成测试。>