⚡ 생각대로 살지 않으면 사는대로 생각한다.
⚡ 나는 어차피 잘 될 놈이다. 이미 잘 되고 있고, 계속해서 잘 되고 있다.
테스트 중 반복시키고 싶은 테스트가 있다면, (예를 들어서, 테스트를 실행할 때마다, 랜덤 값을 쓴다던가, 테스트가 실행되는 타이밍에 따라 조건이 달라지는 경우가 있을 때..)
테스트를 여러 번 반복해서 검증할 수 있다.
@RepeatedTest
- Test 메서드에 RepetitionInfo타입의 매개변수를 넣어주면, 이 매개변수로 인해서, 현재 몇 번째 반복인지, 총 반복 횟수가 얼마나 되어야 하는지 확인 가능하다.
그리고,
이 부분 또한 다르게 출력 가능한데,
애너테이션의 값에 value와, named를 줄 수 있는데, value는 반복횟수를, named는 위의 동그라미 친 부분을 다르게 출력하게 가능하다.
@Repeatition 애너테이션의 값 설명 displayName 출력될 때 이름 currentRepetition 현재 반복 횟수 totalRepetitions 총 반복해야되는 횟수 아무것도 주지 않고 숫자만 적으면, 반복 횟수만 지정된다.
name으로 값들을 줬을 때, 아래와 같다.
아무것도 안 주고, 숫자만 넣었을 때는 아래 사진처럼 나온다.
💡 반복적인 테스트를 할 때마다 다른 값들을 가지고 테스트를 반복하고 싶을 때! @ParameterizedTest를 사용하면 된다.
@ParameterizedTest
JUnit 5는 기본적으로 제공, Junit 4는 서드파티(Third Party) 라이브러리를 이용해서 사용할 수 있다.
서드파티(Third Party) 라이브러리?
프로그래밍 개발과 개발자 사이에 플러그인, 라이브러리, 프레임워크 등을 서드파티로 볼 수 있다.
참고@ValueSorce
해당 애너테이션을 이용하면 파라미터들을 정리할 수 있다.
아래 사진처럼 값들을 집어넣게 되면, 테스트를 반복하면서, 값을 차례대로 하나하나씩 이용한다.
하나 하나씩 보면, 하나씩 실행되었다는 것을 확인할 수 있다.
@Parmeterized에도 @RepeatedTest와 같이 값들을 정해줄 수 있다.
@ParameterizedTest 애너테이션의 값 설명 index 몇 번째 테스트인지 displayName 출력될 때 이름 {0}, {1}, {2}.... 테스트 메서드의 매개변수 인덱스..(0부터시작, 하나만 있으면, {0}) 활용 예시는 아래와 같다.
여기서 {0},{1}은 테스트 메서드 파라미터의 인덱스이다.
@valueSource애너테이션 안의 값들의 인덱스가 아니다!!
@ValueSource 안의 값들은 반복테스트를 위해 지정해준 값일 뿐... 오해하지말자..
💡 인텔리제이 팁.
애너테이션에 어떤 값들이 들어갈 수 있는지를 항상 알고싶어서, 애너테이션을 쓰고, 괄호 열고, 2~3초 기다리고 있었는데..
Windows는 ctrl + P를,
Mac OS 같은 경우는 Command + P 를 사용하면 된다...앞으로 마구마구 사용하겠다. 후후
잘 나온다. 후후