특정한 헤더가 있는 요청을 처리하고 싶은 경우
특정한 헤더가 없는 요청을 처리하고 싶은 경우
특정한 헤더 키/값이 있는 요청을 처리하고 싶은 경우
@RunWith(SpringRunner.class)
@WebMvcTest
public class SampleControllerTest {
@Autowired
MockMvc mockMvc;
@Test
public void helloTest() throws Exception{
mockMvc.perform(get("/hello")
.header(HttpHeaders.FROM, "localhost"))
.andDo(print())
.andExpect(status().isOk());
}
}
@Controller
public class SampleController {
@GetMapping("/hello", headers = HttpHeaders.FROM)
@ResponseBody
public String hello(){
return "hello";
}
}
또는 특별한 헤더가 없는 요청을 처리하고 싶은 경우는 !을 추가한다.
@Controller
public class SampleController {
@GetMapping("/hello", headers = "!" + HttpHeaders.FROM)
@ResponseBody
public String hello(){
return "hello";
}
}
헤더 키 값이 모두 일치하는 경우에만 매핑하고 싶으면 다음과 같이 작성한다.
@Controller
public class SampleController {
@GetMapping("/hello", headers = HttpHeaders.FROM + "=" + "localhost")
@ResponseBody
public String hello(){
return "hello";
}
}
특정한 요청 매개변수 키를 가지고 있는 요청을 처리하고 싶은 경우
특정한 요청 매개변수가 없는 요청을 처리하고 싶은 경우
특정한 요청 매개변수 키/값을 가지고 있는 요청을 처리하고 싶은 경우
@Controller
public class SampleController {
@GetMapping("/hello", params = "name")
@ResponseBody
public String hello(){
return "hello";
}
}
@RunWith(SpringRunner.class)
@WebMvcTest
public class SampleControllerTest {
@Autowired
MockMvc mockMvc;
@Test
public void helloTest() throws Exception{
mockMvc.perform(get("/hello")
.param("name", "spring"))
.andDo(print())
.andExpect(status().isOk());
}
}
파라미터 키 값이 모두 일치하는 경우에만 매핑하고 싶으면 다음과 같이 작성한다.
@Controller
public class SampleController {
@GetMapping("/hello", params = "name=spring")
@ResponseBody
public String hello(){
return "hello";
}
}
참고