मैं अपने वसंत MVC नियंत्रक में इस विधि द्वारा निर्धारित किए गए:JUnit कैसे एक @PreAuthorize एनोटेशन और वसंत एमवीसी नियंत्रक द्वारा निर्दिष्ट अपने वसंत ईएल परीक्षण करता है?
@RequestMapping(value = "{id}/content", method=RequestMethod.POST)
@PreAuthorize("principal.user.userAccount instanceof T(com.anonym.model.identity.PedagoAccount) AND principal.user.userAccount.userId == #object.pedago.userId AND #form.id == #object.id")
public String modifyContent(@PathVariable("id") Project object, @Valid @ModelAttribute("form") ProjectContentForm form) {
....
}
तब मेरे JUnit परीक्षण में मैं इस विधि कॉल और सुनिश्चित करें कि PreAuthorize हालत सत्यापित किया गया है करना चाहते हैं। लेकिन जब मैंने अपने जुनीट परीक्षण में उपयोगकर्ता के प्रिंसिपल को खराब खाते से सेट किया है तो कोई त्रुटि नहीं है और विधि पूरी हो जाती है। ऐसा लगता है कि एनोटेशन को छोड़ दिया गया है।
लेकिन जब मैं इस विधि को सामान्य तरीके से (परीक्षण नहीं) कहता हूं, तो प्री-प्राधिकरण सत्यापित होता है।
यदि यह संभव है, तो जूनिट टेस्ट में इस एनोटेशन का परीक्षण कैसे करें और अपवाद को कैसे पकड़ें यदि यह एक फेंकता है?
धन्यवाद,
निकोलस
प्री-प्राधिकरण में "प्रिंसिपल" का उपयोग करने वाले अन्य लोगों के लिए बस एक नोट, यह एक nullpointerexcpetion के साथ असफल हो जाएगा, और जब तक आप या तो प्रमाणीकृत() या तो पूर्व प्राधिकृत एनोटेशन में या security.xml – chrismarx