반응형
조건에 따라 테스트 실행
- 특정한 조건을 만족하는 경우에 테스트를 실행하는 방법.
- 사용 API : org.junit.jupiter.api.Assumptions.*
assumeTrue(조건)
- 조건이 다르면 테스트가 해당 위치에서 종료된다.
assumingThat(조건, 테스트)
- 조건이 다르면 해당 테스트는 수행되지않고 아래의 테스트는 계속 수행된다.
- @Enabled___ 와 @Disabled___
- OnOS
- 특정 OS에 특화된 테스트
- OnJre
- 특정 자바 버전에 특화된 테스트
- IfSystemProperty
- JVM 시스템 속성에 특화된 테스트
- IfEnvironmentVariable
- 운영체제의 환경 변수에 특화된 테스트
- If
- Deprecated
- OnOS
JUnit 5 - 조건에 따라 테스트 실행 예제
@Test
@DisplayName("스터디 만들기2")
@EnabledOnOs({OS.MAC, OS.LINUX, OS.WINDOWS}) //MAC, LINUX, WINDOWS 운영체제에서만 테스트 수행되도록 설정
@EnabledOnJre({JRE.JAVA_8, JRE.JAVA_9,JRE.JAVA_10, JRE.JAVA_11})
@EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "LOCAL") //환경변수 값이 LOCAL 경우에만 테스트 수행되도록 설정
void create_new_study_again() {
/**
* assumeTrue, assumingThat
* 특정 조건을 만족하면 테스트가 수행되도록 할 수 있다.
* 예) 시스템 환경변수에 따라서 동작하는 테스트 조작 가능
*
* assumeTrue : 조건이 다르면 테스트가 해당 위치에서 종료된다.
* assumingThat : 조건이 다르면 해당 테스트는 수행되지않고 아래의 테스트는 계속 수행된다.
*/
String test_env = System.getenv("TEST_ENV");
System.out.println(test_env);
//시스템 환경변수가 LOCAL 경우에만 테스트 수행
assumingThat("LOCAL".equalsIgnoreCase(test_env), ()->{
System.out.println("local");
Study actual = new Study(100);
assertEquals(actual.getLimit(), 100);
});
//시스템 환경변수가 History 경우에만 테스트 수행. 환경변수가 다르면 여기서 테스트가 멈춘다.
assumeTrue("History".equalsIgnoreCase(test_env));
assumeTrue("LOCAL".equalsIgnoreCase(test_env));
//환경변수가 다르면 현재 테스트는 수행되지않고 아래의 테스트가 계속 수행된다.
assumingThat("History".equalsIgnoreCase(test_env), ()->{
System.out.println("history");
Study actual = new Study(10);
assertEquals(actual.getLimit(), 10);
});
}
- assumeTrue의 조건이 맞지 않는다면 테스트가 종료된다.
assumeTrue("History".equalsIgnoreCase(test_env));
- 특정 OS 또는 JRE 버전에서만 테스트를 동작하도록 할 수 있다. 조건이 맞지 않으면 테스트가 수행되지 않는다.
@EnabledOnOs
,@EnabledOnJre
,@DisabledOnOs
,@DisabledOnJre
- 환경 변수의 값에 따라 테스트를 동작하도록 할 수 있다.
@EnabledIfEnvironmentVariable
,@DisabledIfEnvironmentVariable
반응형
'Java > Test Framework' 카테고리의 다른 글
[더 자바, 애플리케이션을 테스트하는 다양한 방법] JUnit 5 - 테스트 반복수행 (0) | 2021.07.25 |
---|---|
[더 자바, 애플리케이션을 테스트하는 다양한 방법] JUnit 5 - 태깅과 필터링 (0) | 2021.07.23 |
[더 자바, 애플리케이션을 테스트하는 다양한 방법] JUnit 5 - Assertion (0) | 2021.07.19 |
[더 자바, 애플리케이션을 테스트하는 다양한 방법] JUnit 5 - 시작 (0) | 2021.07.17 |
[더 자바, 애플리케이션을 테스트하는 다양한 방법] JUnit 5 - 소개 (0) | 2021.07.14 |
[참고자료]