junit Juint是否为每个测试重置全局变量?

t9eec4r0  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(259)

我有一个类似这样的集成测试类(但更复杂)

@ExtendWith(SpringExtension::class)
@WebMvcTest(Controller::class)
class ScheduleControllerTest(@Autowired val mockMvc: MockMvc) {
   val obj = object {
       var b = 2
   }

   @Test
   fun a(){
       obj.b = 1
       assertEquals(obj.b, 1)
   }

   @Test
   fun b(){
       assertEquals(obj.b, 2)

   }
}

并且这个类中的所有测试都通过了,就好像在每个测试之后obj都被重置为初始值一样。这里没有使用@Before函数,那么发生了什么呢?

gab6jxml

gab6jxml1#

默认情况下,JUnit为每个测试运行创建一个新的测试类示例(每次都重新初始化字段)。您可以使用@TestInstance注解修改此行为。

相关问题