준호씨의 블로그

JUnit5 - 특정 테스트를 여러번 돌리고 싶다면? @RepeatedTest 본문

개발이야기

JUnit5 - 특정 테스트를 여러번 돌리고 싶다면? @RepeatedTest

준호씨 2021. 5. 7. 23:25
반응형

일반적이지는 않지만 특정 테스트를 여러 번 돌리고 싶을 때가 있습니다.

보통 같은 테스트를 여러 번 수행해도 같은 결과가 나올 것이기 때문에 여러 번 돌릴 일은 잘 없습니다.

참고로 입력과 결과가 다른 테스트인 경우 테스트 케이스를 여러 개 만들거나 @ParameterizedTest를 사용하면 됩니다.

저는 최근 랜덤 값에 대한 테스트를 만들다가 @RepeatedTest를 사용해 보았습니다. 사실 랜덤 값에 대한 테스트는 웬만해서는 잘 만들지는 않습니다. 결괏값이 랜덤 하게 나올 수 있기 때문에 테스트의 성공 여부를 보장하지 못하기 때문입니다.

아무튼 기존에 만들었던 테스트와 동일하지는 않지만 대략적인 테스트 코드를 만들어 보면 다음과 같습니다.

@DisplayName("random number test")
@RepeatedTest(100)
void test() {
    Random random = new Random();
    int randomNumber = random.nextInt(10);
    then(randomNumber)
            .as("check that random number is less than 10")
            .isLessThan(10);
}

 

테스트를 수행하면 다음과 같이 같은 테스트를 100번 반복하는 것을 볼 수 있습니다.

 

 

반응형
Comments