티스토리 뷰

Test/JUnit

[JUnit5] 테스트 인스턴스

메성 2020. 2. 19. 01:15
반응형

JUnit 5: 테스트 인스턴스

 

테스트 메소드마다 새로운 인스턴스를 만들어 실행한다.

//테스트 인스턴스
int value = 1;

@Test
@DisplayName("스터디 만들기 테스트 인스턴")
void testInstance() {
  System.out.println(this);
  System.out.println(value++);
}

@Test
@DisplayName("스터디 만들기 테스트 인스턴스 ")
void testInstance2() {
  System.out.println(this);
  System.out.println(value++);
}
  • value 값을 1로 선언 후 각 테스트 메소드에서 value를 증가하여 각각 2 또는 3 이 출력될 거 같지만 결과는 다르다.
  • 둘 다 1이라는 결과가 나타난다.
  • image
  • 이유는 this를 통해 확인해보면, 각 메소드들의 인스턴스가 다르다는 것을 확인할 수 있다.
  • image
  • image

 

 

테스트 인스턴스를 하나만 만들어보자

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class StudyTest {
  @BeforeAll
  void beforeAll() {
    System.out.println("before all");
  }

  @AfterAll
  void afterAll() {
    System.out.println("after all");
  }
}
  • 테스트 인스턴스를 하나만 만들기 위해서는 @TestInstance(TestInstance.Lifecycle.PER_CLASS) 를 클래스에 선언한다.

  • 인스턴스가 하나만 만들어져 있기 때문에, @BeforeAll이나 @AfterAll은 static으로 선언할 필요가 없다.

    • 이유는, 한 클래스에 여러 테스트 인스턴스가 만들어지므로 단 하나의 메소드(static 메소드)에만 접근하기 위해 static으로 선언한 것이다.
  • image
  • image
    • 주소값이 동일하고 value값이 증가된 것을 확인할 수 있다.

 

 

참고

한 테스트 클래스 내에 있는 테스트 메소드들은 순서대로 실행되는 것이 아니다.

반응형

'Test > JUnit' 카테고리의 다른 글

[JUnit5] JUnit 5 : 테스트 반복하기 2  (0) 2020.02.18
[JUnit5] 테스트 반복하기  (0) 2020.02.18
[JUnit5] 커스텀 태그  (0) 2020.02.18
[JUnit5] 태깅과 필터링  (0) 2020.02.18
[JUnit5] 조건에 따라 테스트 실행하기  (0) 2020.01.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함