테스트 코드가 테스트 하는 대상 : HelloBootApplication의 API 기능
이 보다 더 간편하게 직접적으로 코드 테스트하는 방법도 가능
SimpleHelloService라는 클래스는 @Service(@Component를 메타 애너테이션으로 가지고 있는) 클래스 이므로 Spring 내부에서 동작하는 것을 기대하고 있지만 의식하지 않으면 메서드를 하나 가지고 있는 평범한 자바 클래스임
@Service
public class SimpleHelloService implements HelloService {
@Override
public String sayHello(String name) {
return "Hello " + name;
}
}
이 안에 어떤 로직이 들어 있다면 이걸 검증하는 코드를 만드는 것은 어렵지 않음
매번 Tomcat 서버를 실행시키고, HTTP 요청을 보내서 테스트할 필요는 없음.
더 간단하게, 특정 클래스의 기능만을 빠르게 테스트할 수 있으므로 이를 통해서 테스트 수행 속도가 빨라지고, 고립된 테스트를 할 수 있음
파라미터로 들어가는 값을 이용해서 인삿말을 만들어주는 로직 테스트 진행
public class HelloServiceTest {
@Test
public void simpleHelloService() {
SimpleHelloService helloService = new SimpleHelloService();
String ret = helloService.sayHello("Test");
Assertions.assertThat(ret).isEqualTo("Hello Test");
}
}
HelloApiTest 실행속도 : 255ms
HelloServiceTest 실행속도 : 22ms
HelloController의 주요 로직