Junit 을 사용해서 유닛테스트를 작성할 때,
private 접근제어자로 선언된 메서드가 반환하는 값을 테스트 하고 싶었습니다
ex) Private Method
public test {
private String getString(final String name, final int age) {
return name + age;
}
}
여러 방법이 있었지만, 저는 간단하게 Spring Framework에서는지원해주는 ReflectionTestUtils를 사용해주었습니다
@Test
@DisplayName("private 메소드 접근하기")
void fillDate_continuity() {
//given
String name = "test";
int age = 5;
//when
final String result = ReflectionTestUtils.invokeMethod(test,
"getString", name, age);
//then
assertThat(result).isEquals(name+age);
}
}
👏 RefelctionTestUtils 를 사용해서 private 메소드 호출은 invokeMethod ( 클래스, 메소드명, 파라미터 ...) 으로 호출가능!
*참고
'Spring > Test-Driven Develop' 카테고리의 다른 글
[Junit] Test Fixture 란 ❓ (0) | 2022.10.28 |
---|---|
[JUnit] JAVA 매개변수 Test - @ParameterizedTest (0) | 2022.09.29 |
[Spring] 백엔드 부하 테스트 해보기 - nGrinder(with aws, jmeter) (4) | 2022.03.14 |
[Spring boot] 테스트 코드 작성 (2) - Mock, Mockito, MockMVC (0) | 2022.02.03 |
[Spring boot] 테스트 코드 작성 (1) - Junit을 이용한 Unit Test(단위 테스트) / Assert 메소드 (0) | 2022.01.29 |