여니의 프로그래밍 study/Spring & Spring Boot

[스프링부트] 테스트코드 작성하기, hello 출력하기

여니's 2022. 3. 20. 23:16

 

HelloController.java

package com.yeony.web.springbootwebproject.web;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello";
    }
    

}

 

HelloControllerTest.java

package com.yeony.web.springbootwebproject.web;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@WebMvcTest(controllers = HelloController.class)
public class HelloControllerTest {
    @Autowired
    private MockMvc mvc;

    @Test
    public void hello가_리턴된다() throws Exception {
        String hello="hello";
        mvc.perform(MockMvcRequestBuilders.get("/hello"))
                .andExpect(status().isOk())
                .andExpect(content().string(hello));
    }
}

 

Test 코드를 생성하는 단축키는

command + shitf + T입니다.

 

프로젝트 할 때

테스트코드로 먼저 검증 후,

정말 못 믿겠다 싶으면 프로젝트를 실행해보라고 합니다.

 

 

hello_가 리턴된다라는 함수를 실행시키고

local8080:/hello 로 접속하면

아래와 같이 hello가 출력됩니다. 

 

 

 

HTTP GET, POST 간략하게 개념정리

(1) GET

: http://localhose:8080/http/get?id=1%password=123

여기서 주목해야될 부분은 get 다음부터입니다. 

 

위 코드에서

http://localhost:8080/hello로 GetMapping을 하였고,

helloController에서는 hello 문자열을 return해줍니다.

 

그래서 localhost:8080/hello에서 hello라는 문자열이 보이는 거구요!

 

참고로 @GetMapping은 메소드 유형 없이 주소만 지정해주면 됩니다. 

 


참고서적 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스