@Value를 이용하여 application.yml에 등록한 property값을 읽어오는 경우가 있다
이러한 경우에 test를 작성할 때 원하는 값을 넣어주고 싶은 경우 어떻게 하는지 알아보도록 하자
크게 2가지의 상황으로 나누어 볼 수 있다
@SpringBootTest
@SpringBootTest를 사용하지 않는 경우
@Component
@Data
public class TestComponent {
@Value("${my.test.value}")
public String initValue;
public void printA() {
System.out.println(initValue);
}
}
@SpringBootTest
public class UnitTest {
@Autowired
public TestComponent com;
@Test
void test() {
com.printA();
}
}
@SpringBootTest
해당 경우에는 간단하다
@Value에 값을 전달 할 수 있는 다양한 방법을 SpringBoot에서 제공하고 있다
@SpringBootTest
@TestPropertySource(properties = "my.test.value=asdf2")
public class UnitTest {...}
@SpringBootTest(properties = "my.test.value=asdf")
public class UnitTest {...}
예외 경우
위의 케이스 이외의 경우에는 Reflection을 이용해 원하는 값을 채워 넣는 방법이 있다