Java JUnit5 2

김정훈·2024년 6월 5일

Java

목록 보기
47/48

1. 조건에 따른 테스트

1) @EnabledOnOs, @DisabledOnOs
2) @EnabledOnJre, @DisabledOnJre
3) @EnabledIfSystemProperty, @DisabledIfSystemProperty
4) @EnabledIfEnvironmentVariable, @DisabledIfEnvironmentVariable

2. 태깅과 필터링

1) @Tag 애노테이션은 태스크에 태그를 달 때 사용한다. @Tag 애노테이션은 클래스와 테스트 메서드에 적용할 수 있다.
2) @Tag 애노테이션을 이용하면 메이븐이나 그래들에서 실행할 테스트를 선택할 수 있다.
@Tag("integration")

public class TagTest {
    @Tag("very-slow")
    @Test
    void verySlow() {
        int result = someVerySlowOp();
        assertEquals(result, 0);
    }
}

그래들 설정

test {
	useJUnitPlatform {
		includeTags 'integration'
		excludeTags 'slow | very-slow'
	}
}

4) 테스트 포함 대상이나 제외 대상을 지정할 때 태그 식을 사용하는데 태그 식에서는 다음 연산을 이용해서 식을 조합
!, &, |

test {
    useJUnitPlatform{
        includeTags '!exercise' //exercise태그가 아닌것만 포함
    }
}

3. 테스트 메시지

1) assertEquals() 메서드의 세 번째 인자는 테스트에 실패할 때 표시할 메시지로 사용된다.
2) 테스트 코드가 실패하면 다음과 같이 메세지로 전달한 문자열이 실패 안내 문구에 함께 표시된다.
assertEquals(expected.get(i), ret.get(i), "ret[" + i + "]");

--- 출력 ---
org.opentest4j.AssertionFailedError: ret[1] ==>
Expected: 2
Actual: 6

6. @TempDir

애노테이션을 이용한 임시 폴더 생성

public class Ex03Test {

    @TempDir
    private File tempDir;

    @Test
    void test1(){
        String path = tempDir.getAbsolutePath();
        System.out.println(path);
    }
}

7. @Timeout

애노테이션을 이용한 테스트 실행 시간 검증 : 성능테스트

 @Test
    void test1(){
        String path = tempDir.getAbsolutePath();
        System.out.println(path);
    }

    @Test
    @Timeout(value=2500, unit= TimeUnit.MILLISECONDS) //3초 내에 수행이 되면 테스트 통과
    void test2() throws InterruptedException {
        Thread.sleep(5000);
    }
profile
안녕하세요!

0개의 댓글