Spring Rest API - Rest API 시작하기 Controller 작성

목차

Spring Boot Rest API - Rest API 시작하기 Controller 작성

@RestController
public class HelloWorldController {

@GetMapping("/hello-world")
public String Hello(){
return "Hello World";
}

// SpringBoot에서는 HelloWorldBean이라는 객체를 JSON타입의 형태로 반환해준다.
@GetMapping("/hello-world-bean/")
public HelloWorldBean helloWorldBean(){
return new HelloWorldBean("Hello World");
}

@GetMapping("/hello-world-bean/path-variable/{name}")
public HelloWorldBean helloWorldBean(@PathVariable String name){
return new HelloWorldBean(String.format("Hello World, %s", name));
}
}

HelloWorldBean 클래스 생성

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HelloWorldBean {
private String message;
}

테스트 코드 작성

  • MockMvc 객체를 이용해 각 Controller에 대한 Test 코드를 작성한다.
  • MockMvc 객체의 반환 값으로는 ResultActions 를 이용해 받는다.
  • ResultActions 객체내 andExpect 메소드를 이용해 요청이 정상적(200) 으로 수행 됐는지
  • 반환 값이 정상적으로 왔는지 검증한다.
@Test
public void Hello_World가_리턴된다() throws Exception{
ResultActions actions = mockMvc.perform(get("/hello-world"));

actions
.andExpect(status().isOk())
.andExpect(content().string("Hello World"))
.andDo(print())
;
}
  • 반환되는 JSON 객체 에 대해 jsonPath 를 이용해 반환 값에 대한 검증을 한다.
@Test
public void Hello_World_Bean_test() throws Exception{
ResultActions action = mockMvc.perform(get("/hello-world-bean"));

action
.andExpect(status().isOk())
.andExpect(jsonPath("message").value("Hello World"))
.andDo(print());
}
@Test
public void Hello_World_Bean_Name_test() throws Exception{
ResultActions actions = mockMvc.perform(get("/hello-world-bean/path-variable/dongwoo"));

actions
.andExpect(status().isOk())
.andExpect(jsonPath("message").value("Hello World, dongwoo"))
.andDo(print());
}
Share