JUnit은 테스트 메소드 마다 테스트 인스턴스를 새로 만든다.
@TestInstance(Lifecycle.PER_CLASS)
@DisplayNameGeneration(DisplayNameGenerator.ReplaceUnderscores.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS) // Study Instance를 한 개만 만듬.
class StudyTest {
int value = 0;
@FastTest
@DisplayName("스터디 만들기 Fast")
void create_new_Study() {
System.out.println(this);
System.out.println(value++);
Study actual = new Study(1);
assertThat(actual.getLimit()).isGreaterThan(0);
@SlowTest
@DisplayName("스터디 만들기 slow")
void create1_new_study_again() {
System.out.println(this);
System.out.println("create1 " + value++);
}
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
이것을 쓰지 않을 때, JUnit은 테스트 메소드 마다 테스트 인스턴스를 새로 만들기 때문에,
value값이 계속 증감하기를 기대했지만, value++을 해도 콘솔창에는 0으로 나오게 된다.