मेरे पास ब्राउज़र नामक पीओजेओ है जिसे मैंने हाइबरनेट वैलिडेटर एनोटेशन के साथ एनोटेट किया है।मैं जुनीट परीक्षण में सत्यापन का आह्वान करने के लिए स्प्रिंग एमवीसी कैसे प्राप्त करूं?
import org.hibernate.validator.constraints.NotEmpty;
public class Browser {
@NotEmpty
private String userAgent;
@NotEmpty
private String browserName;
...
}
मैंने निम्न यूनिट परीक्षण लिखा है जो मेरी नियंत्रक विधि सत्यापन सत्यापन त्रुटियों को सत्यापित करने का प्रयास करता है।
@Test
public void testInvalidData() throws Exception {
Browser browser = new Browser("opera", null);
MockHttpServletRequest request = new MockHttpServletRequest();
BindingResult errors = new DataBinder(browser).getBindingResult();
// controller is initialized in @Before method
controller.add(browser, errors, request);
assertEquals(1, errors.getErrorCount());
}
यहाँ मेरी नियंत्रक जोड़ने() विधि है:
@RequestMapping(value = "/browser/create", method = RequestMethod.POST)
public String add(@Valid Browser browser, BindingResult result, HttpServletRequest request) throws Exception {
if (result.hasErrors()) {
request.setAttribute("errorMessage", result.getAllErrors());
return VIEW_NAME;
}
browserManager.save(browser);
request.getSession(false).setAttribute("successMessage",
String.format("Browser %s added successfully.", browser.getUserAgent()));
return "redirect:/" + VIEW_NAME;
}
समस्या मैं का सामना कर रहा है कि परिणाम है कभी नहीं त्रुटियाँ हैं, तो जैसे @Valid मान्यता प्राप्त नहीं हो रही है यह है। मैंने अपनी टेस्ट क्लास में निम्नलिखित जोड़ने का प्रयास किया, लेकिन यह समस्या का समाधान नहीं करता है।
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"file:path-to/WEB-INF/spring-mvc-servlet.xml"})
क्या किसी को पता है कि मैं जुनीट के साथ परीक्षण करते समय @ वैलिड को मान्यता प्राप्त (और मान्य) कैसे प्राप्त करूं?
धन्यवाद,
मैट