我有一个控制器:
@Controller
@RequestMapping(value = "/bookForm")
public class BookFormController {
@Autowired
private BookHttpRequestParser parser;
@Autowired
private BooksService booksService;
@RequestMapping(params = "add", method = RequestMethod.POST)
public String addBook(HttpServletRequest request) {
try {
Book newBook = parser.createBookFromRequest(request);
booksService.addBook(newBook);
} catch (InvalidTypedParametersException e) {
}
return "redirect:index.html";
}
这个控制器有一个将书添加到数据库的方法。方法具有 @RequestMapping 注释和params = "add"值。
我试图将此参数标准设置为控制器单元测试方法:
@Test
public void addBook() throws Exception{
HttpServletRequest request = mock(HttpServletRequest.class);
Book book = new Book();
when(parser.createBookFromRequest(request)).thenReturn(book);
mockMvc.perform(post("/bookForm", "add"))
.andExpect(status().isOk())
.andExpect(view().name("redirect:index.html"));
}
在哪里指定这个@ResuetsMapping 参数值?
这个:
mockMvc.perform(post("/bookForm", "add" ))
根本不起作用。