-
JUnit 5. 테스트 인스턴스BackEnd/JUnit 2022. 2. 3. 17:50반응형
JUnit은 기본 전략으로 테스트 메소드마다 테스트 인스턴스를 새로 만듭니다. 테스트간 의존성을 없애고 독립적으로 실행하여 예상치 못한 부작용을 방지하기 위함입니다. 아래 코드에서 value 값을 증가시키기 때문에 1, 2, 3이 출력되어야 할 것 같지만 결과는 모두 1이 출력됩니다.
package com.java.JUnit5; import org.junit.jupiter.api.Test; public class InstanceTests { int value = 1; @Test void printOne() { System.out.println(value++); // [결과]: 1 } @Test void printTwo() { System.out.println(value++); // [결과]: 1 } @Test void printThree() { System.out.println(value++); // [결과]: 1 } }
해당 전략을 JUnit 5에서 변경할 수 있습니다. @TestInstance(Lifecycle.PER_CLASS)를 사용하면 테스트 클래스당 인스턴스를 하나만 만들어 사용합니다.
package com.java.JUnit5; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class InstanceTests { int value = 1; @Test void printOne() { System.out.println(value++); // [결과]: 1 } @Test void printTwo() { System.out.println(value++); // [결과]: 2 } @Test void printThree() { System.out.println(value++); // [결과]: 3 } }
반응형'BackEnd > JUnit' 카테고리의 다른 글
JUnit 5. Extension (0) 2022.02.03 JUnit 5. 테스트 순서 (0) 2022.02.03 JUnit 5. 반복문 (0) 2022.02.03 JUnit 5. Tag (0) 2022.01.31 JUnit 5. 조건문 (0) 2022.01.31