Spring JUnit TEST
이전에 했던 계산기를 Spring에서 구현하여 API를 만들고 Test를 하는 과정이다.
여기에는 Test코드만 올리고 나중에 좀더 보충해야겠다..
@WebMvcTest(CalculatorApiController.class)
@AutoConfigureWebMvc
@Import({Calculator.class, DollarCalculator.class})
public class CalculatorApiControllerTest {
@MockBean
private MarketApi marketApi;
@Autowired
private MockMvc mockMvc;
@BeforeEach
public void init() {
Mockito.when(marketApi.connect()).thenReturn(3000);
}
@Test
public void sumTest() throws Exception {
// http://localhost:8080/api/sum
mockMvc.perform(
MockMvcRequestBuilders.get("http://localhost:8080/api/sum")
.queryParam("x", "10")
.queryParam("y", "10")
).andExpect(
MockMvcResultMatchers.status().isOk()
).andExpect(
MockMvcResultMatchers.content().string("60000")
).andDo(MockMvcResultHandlers.print());
}
@Test
public void minusTest() throws Exception {
Req req = new Req();
req.setX(10);
req.setY(10);
String json = new ObjectMapper().writeValueAsString(req);
mockMvc.perform(
MockMvcRequestBuilders.post("http://localhost:8080/api/minus")
.contentType(MediaType.APPLICATION_JSON)
.content(json)
).andExpect(
MockMvcResultMatchers.status().isOk()
).andExpect(
MockMvcResultMatchers.jsonPath("$.result").value("0")
).andExpect(
MockMvcResultMatchers.jsonPath("$.response.resultCode").value("OK")
).andDo(MockMvcResultHandlers.print());
}
}
사실 JUnit을 이용한 ServiceTest,DAO test는 사용할수 있기 때문에... API를 테스트하는 과정과 MockBean을 사용하는 법을 좀 더 알고싶었지만, 너무 간단하게 알려줘서 혼자 조금더 공부해야겠다....
'Dev > Spring Boot' 카테고리의 다른 글
Swagger 란? 무엇인고? (0) | 2022.03.02 |
---|---|
JUnit으로 테스트 하기1 (0) | 2022.03.02 |
스프링의 다양한 기능2(Filter, Interceptor) (0) | 2022.03.02 |
스프링의 다양한 기능(Filter, Interceptor) (0) | 2022.03.02 |
스프링의 다양한 기능(Vaildation, Exception처리) (0) | 2022.03.02 |