테스트 코드를 짜다 보면 같은 로직의 테스트가 늘어난다.
JUnit에는 이렇게 여러 개의 테스트를 한번에 작성하기 위한 @ParameterizedTest 라는 어노테이션을 제공한다. 기본적인 사용 방법은 @Test 대신 @ParameterizedTest 라는 이 annotation을 추가하는 것을 제외하고는 다른 테스트와 동일하다.
이 때 파라미터로 넘겨줄 값들을 지정해주어야 하는데, 이 역시 어노테이션을 사용해서 테스트에 주입해줄 수 있다.
@DisplayName("덧셈 연산을 수행한다.")
    @Test
    void additionTest() {
        int result = Calculator.calculator(1, "+", 2);
        assertThat(result).isEqualTo(3);
}
@DisplayName("뺄셈 연산을 수행한다.")
	@Test
    void subtractionTest() {
        int result = Calculator.calculator(1, "-", 2);
        assertThat(result).isEqualTo(-1);
}
method를 인수로 전달해주면 복잡한 인수를 전달할 수 있다.
@DisplayName("덧셈 연산을 수행한다.")
    @ParameterizedTest
    @MethodSource("formulaAndResult")
    void calculateTest(int operand1, String operator, int operand2, int result) {
        int calculatorResult = Calculator.calculator(operand1, operator, operand2);
        assertThat(calculatorResult).isEqualTo(result);
    }
    private static Stream<Arguments> formulaAndResult() {
        return Stream.of(
                arguments(1, "+", 2, 3),
                arguments(1, "-", 2, -1),
                arguments(4, "*", 2, 8),
                arguments(4, "/", 2, 2)
        );
    }
좋은 정보 얻어갑니다, 감사합니다.