में प्रिंसिपल इंजेक्ट करें स्प्रिंग 3 एमवीसी के हिस्से के रूप में वर्तमान में लॉग इन उपयोगकर्ता (सिद्धांत) ऑब्जेक्ट को नियंत्रक विधि में इंजेक्ट करना संभव है।स्प्रिंग 3 एमवीसी कंट्रोलर एकीकरण परीक्षण - विधि
@Controller
public class MyController {
@RequestMapping(value="/update", method = RequestMethod.POST)
public String update(ModelMap model, Principal principal) {
String name = principal.getName();
... the rest here
}
}
इस स्प्रिंग 3 प्रलेखन यहाँ के हिस्से के रूप प्रलेखित है।
यह उत्पादन कोड में काम करता है। हालांकि मुझे नहीं पता कि इसका परीक्षण कैसे किया जाए। जब मैं एकीकरण परीक्षण (वसंत सुरक्षा संदर्भ भी स्थापित कर रहा हूं) और नियंत्रक हैंडल विधि को कॉल करें तो प्रिंसिपल हमेशा शून्य है!
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
}
परीक्षण सही ढंग से चल रहे हैं और प्रधान के अलावा सब कुछ रिक्त है।
कोई विचार?
TIA
अयूब
मैंने कोशिश की और यह काम किया। बहुत सरल और साफ। धन्यवाद –