मैंने स्टैक ओवरफ्लो की खोज की है और चार घंटों में गुगल किया है और अभी भी मेरी "छोटी" समस्या के लिए कोई समाधान नहीं मिला है।मैं एक नियंत्रक विधि का परीक्षण कैसे करूं जिसमें [प्राधिकरण] विशेषता लागू होती है?
यदि आप अपने फ़िल्टर किए गए [Authorize] ActionResult
के लिए यूनिट परीक्षण लिखते हैं, तो आप नकली में समस्या को कैसे हल करते हैं जिसे उपयोगकर्ता प्रमाणित किया जाता है?
मैं ActionResult
तरीकों कि [Authorize]
साथ फ़िल्टर्ड रहे हैं की एक बहुत कुछ है और मैं अगर वे [Authorize]
या नहीं के साथ फ़िल्टर्ड रहे हैं, भले ही मेरी ActionResult
तरीकों के सभी परीक्षण करना चाहते हैं।
मैं क्या मतलब है की एक साधारण उदाहरण:
[TestMethod]
public void Create_Get_ReturnsView()
{
// Arrange
var controller = new UserController();
// Act
var result = controller.Create();
// Assert
Assert.IsNotNull(result as ViewResult);
}
[Authorize]
public ActionResult Create()
{
return View("Create");
}
फिलहाल परीक्षण भी [अधिकृत] फिल्टर, फेंका अपवाद की वजह से ActionResult विधि मारा नहीं है: System.NullReferenceException: Object reference not set to an instance of an object.
ऐसा कुछ है जो आप हमें नहीं दिखा रहे हैं। आपके द्वारा दिखाया गया परीक्षण * किसी भी * एक्शन फ़िल्टर निष्पादित नहीं करेगा। हो सकता है आपके पास कोड होगा जो कि होगा, लेकिन यह आपके प्रश्न में नहीं है। शुरुआत के लिए त्रुटि के लिए पूरे कॉल स्टैक के बारे में कैसे? –