Ich arbeite mit einer ASP.NET MVC-Lösung in einer testgesteuerten Weise und ich möchte einen Benutzer mit Formularauthentifizierung an meine Anwendung anmelden. Der Code Ich mag würde mit in der Steuerung, um am Ende sieht ungefähr so aus:Wie kann ich meinen ASP.NET MVC-Controller, der FormsAuthentication verwendet, testen?
FormsAuthentication.SetAuthCookie(userName, false);
Meine Frage ist, wie kann ich einen Test schreibe diesen Code zu rechtfertigen?
Gibt es eine Möglichkeit zu überprüfen, ob die SetAuthCookie-Methode mit den richtigen Parametern aufgerufen wurde?
Gibt es eine Möglichkeit, eine falsche/falsche FormsAuthentication zu injizieren?
+1 auf diese, nicht die Frameworks anderer Leute testen, nur Ihre Verwendung von ihnen. Wir machen die gleiche (ähnliche) Sache in unserer App (wrap FormsAuth Zeug, etc.) – chadmyers
* seufz * Microsoft ist so stolz auf dieses Framework SO testbar! Ich hatte gehofft, dass da ein eingebauter Weg war, um dies zu verspotten, ohne zu verpacken. Raten Sie nicht :( – maz
Das Problem ist nicht, dass das Framework nicht testbar ist ... das Problem ist, dass die FormsAuthentication-Klasse vor dem Unit-Testing-Design von MVC. Wie Darin die beste Weise erwähnt hat, ist dies zu entkoppeln Controller von der Klasse mit den statischen Methoden mit einer Schnittstelle – Jesse