테스트 코드 작성

pom.xml에 추가되어 있는 Spring Boot Starter Test dependency(의존성 라이브러리)에는 Java 기반 애플리케이션 테스팅에 필요한 JUnit, HamcrestMockito 의존성 라이브러리가 포함되어 있어 추가적인 설정이 필요 없습니다.

다음을 수행하여 테스트 코드를 작성하고 커밋합니다.

  • STS에서 src/test/java 하위에 있는 패키지(package)를 선택합니다. (예 : io.infograb.api)

  • File > New > Class를 선택한 다음, Name 필드에 GreetingControllerTest을 입력하고 Finish 버튼을 클릭합니다.

  • GreetingControllerTest.java 파일 내용을 아래와 같이 수정합니다.

    package io.infograb.api;
    
    import org.junit.jupiter.api.DisplayName;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
    import org.springframework.test.web.servlet.MockMvc;
    
    import static org.hamcrest.CoreMatchers.is;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
    
    @DisplayName("Greeting test case")
    @WebMvcTest(GreetingController.class)
    public class GreetingControllerTest {
    
        @Autowired
        private MockMvc mockMvc;
    
        @DisplayName("Test default greeting")
        @Test
        public void testDefaultGreeting() throws Exception {
            this.mockMvc.perform(get("/greeting"))
                    .andExpect(status().isOk())
                        .andExpect(jsonPath("$.content", is("Hello, World!")));
        }
    
        @DisplayName("Test greeting with query string parameter")
        @Test
        public void testGreetingWithParameter() throws Exception {
            String name = "Jason";
            this.mockMvc.perform(get("/greeting?name=" + name))
                    .andExpect(status().isOk())
                        .andExpect(jsonPath("$.content", is("Hello, Jason!")));
        }
    
    }
  • STS의 Package Explorer에서 GreetingControllerTest.java를 선택하고 우클릭한 다음, 컨텍스트 메뉴에서 Run As > JUnit Test를 선택하여 테스트를 실행합니다.

  • 아래와 같이 2개의 테스트가 에러 없이 성공으로 수행되는 것을 확인할 수 있습니다.

sts_junit_test_result

  • 아래 명령을 실행하여 Git 커밋합니다.

    git add .
    git commit -m "Add test code"