Parameterized Test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class SetTest { private Set<Integer> numbers; @BeforeEach void setUp(){ numbers = new HashSet<>(); numbers.add(1); numbers.add(1); numbers.add(2); numbers.add(3); } @Test void contains() { assertThat(numbers.contains(1)).isTrue(); assertThat(numbers.contains(2)).isTrue(); assertThat(numbers.contains(3)).isTrue(); } }
|
위와 같이 Set의 API에 대한 학습테스트를 수행한다고 하였을떄 각 원소를 포함했는지 중복코드가 발생한다.
Junit 5부터는 이를 ParameterizedTest 로 테스트에 여러개의 매개변수를 넣어주게 해줌으로써 테스트 코드 리팩토링을 원할하게 해준다.
필요한 library dependency는 다음과 같다.
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-params</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency>
testCompile("org.junit.jupiter:junit-jupiter-params:5.8.1")
|