我有一个带有注释的测试;@SpringBootTest
和@WebMvcTest的另一个测试calss
而且他们不一起工作,当我移动他们中的一人时,他们都像预期的那样工作。
有人能给出建议吗?他们中的两个在一个源树中有什么关系/问题?
发布于 2019-01-22 10:59:54
@SpringBootTest加载整个Spring上下文。
例如,@WebMvcTest使您能够测试单个Controller类。
如果有完整的上下文可用,为什么需要@WebMvcTest?
根本原因是:
java.lang.IllegalStateException:配置错误:为测试类找到@BootstrapWith的多个声明
因为注释@SpringBootTest和@WebMvcTest都有@BootstrapWith注释,因此不允许这样做。
编辑
回答你的评论:在这种情况下,我会考虑把它分成两个不同的类。让我们假设您想测试UserController类。然后为单元测试创建UserControllerTest类,该类使用@WebMvcTest(UserController.class)注释,第二个类名为UserControllerIT,它使用@SpringBootTest进行注释,并具有一组集成测试。
https://stackoverflow.com/questions/54306656
复制相似问题