JUnit5 를 주로 사용하는데 파라미터 관련 소스는 계속 안사용하면 잊어버려서 기록 !
@MethodSource를 사용해서 배열을 파라미터로 받는 테스트
딱히 expected 가 필요하진 않지만,,
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.*;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
class MergeSortTest {
@DisplayName("정수배열을 입력하면 정렬된다")
@MethodSource("intArray")
@ParameterizedTest
void mergesort를수행하면_오름차순정렬된다(int[] input, int[] expected ) {
assertThat(MergeSort.mergeSort(input)).isSorted();
}
static Stream<Arguments> intArray(){
return Stream.of(
Arguments.of(new int[]{1,2,3,4,5},new int[]{1,2,3,4,5}),
Arguments.of(new int[]{5,4,3,2,1},new int[]{1,2,3,4,5}),
Arguments.of(new int[]{5,1,3,2,4},new int[]{1,2,3,4,5}),
Arguments.of(new int[]{5,1,3,2,},new int[]{1,2,3,5})
);
}
}
Enum Converting 도 잘 해준다
@DisplayName("symbol 에 따른 Operation이 나오는지")
@MethodSource(value = "operationBySymbol")
@ParameterizedTest
void test(String symbol, Operation operation) {
assertThat(fromString(symbol)).isEqualTo(Optional.of(operation));
}
static Stream<Arguments> operationBySymbol() {
return Stream.of(
Arguments.of("+", Operation.PLUS),
Arguments.of("-", Operation.MINUS),
Arguments.of("*", Operation.TIMES),
Arguments.of("/", Operation.DIVIDE));
}
'개발 > Java & Spring ' 카테고리의 다른 글
[Spring] HttpServletRequest, HttpSession 을 필요로하는 로직을 테스트하는 방법 (0) | 2020.04.22 |
---|---|
[자바봄] producer - consumer 과제일기 : 1단계 (0) | 2020.04.13 |
[Java/Spring] javax.validation @Size vs @NotBlank과 Validation Test (2) | 2020.03.02 |
[Java] Java Code Coverage(JaCoCo)를 사용해보자. (0) | 2019.12.20 |
[Spring boot - webpack] Webpack으로 js파일 모듈화하고 번들링하기 (0) | 2019.07.14 |