我正在尝试测试RestController
的有效性。这是我的controller
@RequestMapping(value="/my-data",method=RequestMethod.GET, produces= {MediaType.APPLICATION_JSON_UTF8_VALUE})
public ResponseEntity<?> doSomething(@Validated @RequestParam (value = "id")@Size(min=6,max=6) String id){
//some logic here
}
我有一个ControllerAdvice
来处理ConstraintViolationException
@ExceptionHandler({ ConstraintViolationException.class })
public ResponseEntity<?> handleConstraintViolation(ConstraintViolationException ex, WebRequest request) {
//exception handling here
return ResponseEntity.status(400).body("My error Message here");
}
一切都很好。但是现在我试图编写单元测试用例,但是我的单元测试用例从不抛出ConstraintViolationException
。
我正在如下设置MockMvc
mvc = MockMvcBuilders.standaloneSetup(myController).setControllerAdvice(new MyControllerAdviceClass()).build();
测试用例为
@Test
public void testForConstrain() throws Exception {
mvc.perform(get("/my-data")
.param("id", "123"))
.andExpect(status().isBadRequest());
}
但是该测试用例没有通过,因为未抛出ConstraintViolationException
。不知道我在这里做错了什么。