티스토리 뷰

TDD

테스트 코드를 작성해보자

pakker 2020. 10. 19. 22:24


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 static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.hamcrest.Matchers.is;

@RunWith(SpringRunner.class)
@WebMvcTest
public class HelloControllerTest {

@Autowired
private MockMvc mvc; // mvc 테스트 할때 허구의 인스턴스를 만들어줌

@Test
public void hello_리턴된다() throws Exception {

 String hello = "hello";
 mvc.perform(get("/hello"))
 .andExpect(status().isOk())
 .andExpect(content().string(hello));                   // return값을 content()로 받을 수 있음, 이값을 String hello와 비교하는것임

}

@Test
 public void helloDto_리턴된다() throws Exception{
  //given
  String name="name";
  int amount =1;

  //when
  mvc.perform(get("/hello/dto")                          // get으로 uri에 요청
           .param("name",name)                           // .param : 파라미터를 넣어줌
           .param("amount",String.valueOf(amount))) // 전부 String 형태로 들어가서 다른 건 변환 시켜줘야함

 //then
           .andExpect(status().isOk())                           // mvc.perform 의 결과를 검증, http header status검증, 200, 404, 500 등을 검증하는것임..!!!!!!
           .andExpect(jsonPath("$.name", is(name)))       // json응답값을 필드별로 검증할 수 있는 메소드
           .andExpect(jsonPath("$.amount", is(amount))); // $.쓰고 필드명쓰기
 }
}

'TDD' 카테고리의 다른 글

???  (0) 2020.11.02
테스트 코드란  (0) 2020.10.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함