1) @EnabledOnOs, @DisabledOnOs
2) @EnabledOnJre, @DisabledOnJre
3) @EnabledIfSystemProperty, @DisabledIfSystemProperty
4) @EnabledIfEnvironmentVariable, @DisabledIfEnvironmentVariable
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태그가 아닌것만 포함
}
}
1) assertEquals() 메서드의 세 번째 인자는 테스트에 실패할 때 표시할 메시지로 사용된다.
2) 테스트 코드가 실패하면 다음과 같이 메세지로 전달한 문자열이 실패 안내 문구에 함께 표시된다.
assertEquals(expected.get(i), ret.get(i), "ret[" + i + "]");
--- 출력 ---
org.opentest4j.AssertionFailedError: ret[1] ==>
Expected: 2
Actual: 6
애노테이션을 이용한 임시 폴더 생성
public class Ex03Test {
@TempDir
private File tempDir;
@Test
void test1(){
String path = tempDir.getAbsolutePath();
System.out.println(path);
}
}
애노테이션을 이용한 테스트 실행 시간 검증 : 성능테스트
@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);
}