티스토리 뷰
반응형
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이라는 결과가 나타난다.
- 이유는 this를 통해 확인해보면, 각 메소드들의 인스턴스가 다르다는 것을 확인할 수 있다.
테스트 인스턴스를 하나만 만들어보자
@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으로 선언한 것이다.
- 주소값이 동일하고 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
링크
TAG
- java
- 스프링부트
- try with resources
- junit
- Effective Java
- flatMap
- 자바8
- java8
- 생성자
- 인프런
- 팩토리 메소드 패턴
- mustache
- 김영한
- 빌더 패턴
- 점층적 생성 패턴
- Spring
- effectivejava
- 이펙티브자바
- 정적팩터리메서드
- springboot
- JPA
- @Lazy
- ifPresent
- jdk버전
- package-private
- try catch finally
- 복사 팩토리
- 연관관계
- 빈 순환 참조
- 이펙티브 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함