본문 바로가기
Programming/Java, Spring

[Java] 테스트 코드 작성시 ParameterizedTest + MethodSource 코드 작성 예시

by Renechoi 2022. 10. 23.

 

의존성 설정 

 


implementation 'org.junit.jupiter:junit-jupiter-params:5.9.0'
testImplementation 'org.assertj:assertj-core:3.23.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'

 

ParameterizedTest에서 메소드 소스를 받아 작성하여 

4개의 연산 테스트를 하나로 묶을 수 있다. 

 

public class CalculatorTest {

    @DisplayName("덧셈 연산을 수행한다")
    @ParameterizedTest
    @MethodSource("formulaAndResult")
    void additionTest(int operand1, String operator, int operand2, int result) {
        int calculateResult = Calculator.calculate(operand1, operator,operand2);
        assertThat(calculateResult).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)
        );
    }
}

 

 

반응형