मैं नए स्टाइल एनोटेशन का उपयोग करने के लिए एक स्प्रिंग एमवीसी नियंत्रक माइग्रेट कर रहा हूं, और एक कमांड ऑब्जेक्ट को सत्यापित करने वाले नियंत्रक विधि का परीक्षण करना चाहता हूं (नीचे सरल उदाहरण देखें)।एनोटेशन का उपयोग करते समय स्प्रिंग एमवीसी बाइंडिंग रीसेट का मज़ाक उड़ाते हुए
@RequestMapping(method = RequestMethod.POST)
public String doThing(Command command, BindingResult result,
HttpServletRequest request, HttpServletResponse response,
Map<String, Object> model){
ThingValidator validator = new ThingValidator();
validator.validate(command, result);
... other logic here
}
मेरे समस्या मैं अपने इकाई परीक्षण में नियंत्रक की विधि कहते हैं, और नकली मान प्रदान करने के लिए कोड को ठीक से व्यायाम करने के लिए उसके हस्ताक्षर को संतुष्ट करना है, और मैं बाहर काम नहीं कर सकता एक BindingResult उपहास करने के लिए कैसे।
पुरानी शैली नियंत्रक में हस्ताक्षर ने केवल एक HttpServletRequest और HttpServletResponse लिया, जो आसानी से मजाक कर रहे थे, लेकिन नई एनोटेशन शैली की लचीलापन के कारण, हस्ताक्षर के माध्यम से किसी को बहुत अधिक पास करना पड़ता है।
एक यूनिट परीक्षण में उपयोग के लिए स्प्रिंग बाइंडिंग रीसेट का नकल कैसे कर सकता है ??
हाय मार्क, जो मुझे सही ट्रैक धन्यवाद पर डाल देता है। का उपयोग करना बाइंडिंग रीसेट बाध्यकारीResult = नया बीनप्रॉपर्टी बाइंडिंग रीसेट (कमांड, "कमांड"); और मेरे परीक्षण के भीतर मॉडल में कमांड ऑब्जेक्ट चिपकाना मेरे परीक्षण को हल करना प्रतीत होता था। –
इस तरह मैं इसे भी करता हूं। –
इसके लिए धन्यवाद, मुझे बहुत मदद की! – Stefan