Là một phần của Spring 3 MVC, có thể tiêm đối tượng người dùng hiện đang đăng nhập vào một phương thức điều khiển.Kiểm tra tích hợp bộ điều khiển MVC mùa xuân 3 - Đưa hiệu trưởng vào phương thức
Ví dụ:
@Controller
public class MyController {
@RequestMapping(value="/update", method = RequestMethod.POST)
public String update(ModelMap model, Principal principal) {
String name = principal.getName();
... the rest here
}
}
này được ghi chép lại như một phần của mùa xuân 3 tài liệu ở đây: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-arguments.
Điều này hoạt động trong mã sản xuất. Tuy nhiên tôi không biết làm thế nào để kiểm tra điều này. Khi tôi tạo thử nghiệm tích hợp (cũng đã thiết lập bối cảnh bảo mật mùa xuân) và gọi phương thức xử lý bộ điều khiển thì Hiệu trưởng luôn là giá trị rỗng!
public class FareTypeControllerIntegrationTest extends SpringTestBase {
@Autowired
private MyController controller;
@Autowired
private AnnotationMethodHandlerAdapter handlerAdapter;
private final MockHttpServletRequest request = new MockHttpServletRequest();
private final MockHttpServletResponse response = new MockHttpServletResponse();
@Test
public void testUpdate() throws Exception {
request.setRequestURI("/update");
request.setMethod(HttpMethod.POST.name());
... setup rest of request
ModelAndView mav = handlerAdapter.handle(request, response, controller);
.. rest of assertions
}
Các kiểm tra đang chạy chính xác và mọi thứ ngoại trừ Hiệu trưởng không có giá trị.
Bất kỳ ý tưởng nào?
TIA
Ayub
Tôi đã thử cách này và hoạt động. Khá đơn giản và gọn gàng. Cảm ơn –