Spring
Junit5에서 parmeter를 이용한 Test실행하기
주탱2
2022. 12. 6. 00:54
Junit4와 Junit5에서는 parameter를 이용한 Test를 실행할 때 조금 다르다.
Junit 4 : JunitParams 이용
@RunWith(JunitParams.class)
public class EventTest {
@Test
@Parameters
public void testFree(int basePrice, int maxPrice, boolean isFree) {
Event event = Event.builder()
.basePrice(basePrice)
.maxPrice(maxPrice)
.build();
event.update();
assertThat(event.isFree()).isEqualTo(isFree);
}
private Object[] parametersForTestFree() {
return new Object[]{
new Object[]{0, 0, true},
new Object[]{100, 0, false},
new Object[]{0, 100, false},
new Object[]{100, 200, false}
};
}
}
Junit5 : @ParameterizedTest 사용
@ParameterizedTest
@MethodSource("parametersForTestFree")
public void testFree(int basePrice, int maxPrice, boolean isFree) {
Event event = Event.builder()
.basePrice(basePrice)
.maxPrice(maxPrice)
.build();
event.update();
assertThat(event.isFree()).isEqualTo(isFree);
}
static Object[] parametersForTestFree() {
return new Object[]{
new Object[]{0, 0, true},
new Object[]{100, 0, false},
new Object[]{0, 100, false},
new Object[]{100, 200, false}
};
}