Private Method를 테스트하라
Spring 프로젝트를 기준으로 Spring-test 라이브러리를 추가해준다.
testImplementation 'org.springframework.boot:spring-boot-starter-test' private method를 테스트 하기 위해서는 spring test 라이브러리에 있는 **ReflectionTestUtils**가 필요하다.
ReflectionTestUtils (Spring Framework 5.2.8.RELEASE API)
public abstract class ReflectionTestUtils extends Object ReflectionTestUtils is a collection of reflection-based utility methods for use in unit and integration testing scenarios. There are often times when it would be beneficial to be able to set a non- public field, invoke a non- public setter met…
API에서 제공 목록

여기서 private method메서드를 호출해야 하니 invokeMethod 메서드를 사용해서 하겠다.
class Target { private String name; public Target(String name) { this.name = name; } private String addString(String value) { return name + value; } } class TestTarget { @Test void privateMethod() { Target target = new Target("ABC"); String returnValue = ReflectionTestUtils.invokeMethod(target, "addString", "DEF") org.junit.jupiter.api.Assertions.assertEquals("ABCDEF", returnValue); } }
This article is licensed under CC BY 4.0 by the author.