ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.