如何防止使用 MockMvc 进行测试干扰单元测试?

时间:2021-02-15 19:29:14

标签: java spring-boot junit mockito mockmvc

在项目开始时,我仅使用 Mockito 创建了几个测试。现在,我开始使用 MockMvc 创建项目的第一个端点测试,因此,许多测试都失败了。这个集成测试引入的上下文似乎改变了几个孤立的测试的结果。

最大的问题是,如果我用新结果“纠正”测试并一起运行所有测试,一切正常。但是,当我单独运行测试时,它们会失败,因为结果又回到了“更正”之前的状态。

简而言之,我需要防止 MockMvc 的测试干扰单元测试。

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MyEnpointsControllerTest {
   // my tests
}
@RunWith(MockitoJUnitRunner.Silent.class)
public class MySingleImplementationTest {
    // my tests
}
<块引用>

正在发生的事情的示例:当我运行文件测试时,某处有一个静态变量,称为 messageSource,即 null。但是当我运行所有测试时,MockMvc 部分会启动应用程序,为 messageSource 提供一些价值。这就是为什么我的单元测试可以根据情况有 2 个结果。

0 个答案:

没有答案