Ich schreibe eine Benutzeroberfläche zum Verwalten von Benutzern in einer ASP.NET 5
-App. Ich muss alle Fehler anzeigen, die vom UserManager auf der Benutzeroberfläche zurückgegeben werden. Ich habe die IdentityResult
-Fehler, die im Ansichtsmodell zurückgegeben werden, aber ich bin eine Berührung adrift, wenn es darum geht, meinen Code zu testen.
Was ist der beste Weg, die UserManager
in ASP.NET 5
zu verprügeln?
Sollte ich von UserManager
übernehmen und alle Methoden außer Kraft setzen und meine Version von UserManager
in eine Instanz von Controller
in meinem Testprojekt einfügen?
Ich habe es mit Hilfe der MVC Music Store Beispielanwendung geschafft.
In meiner Unit-Test-Klasse habe ich den Datenbankkontext und den UserManager wie folgt eingerichtet:
%Vor%Dann kann ich den UserManager in meinen Komponententests verwenden, zum Beispiel:
%Vor%Wenn Ihr Abhängigkeitsinjektor einen IHttpContextAccessor nicht auflösen kann, können Sie keine UserManager-Instanz erstellen, da sie davon abhängig ist. Ich denke (und dies ist nur eine Annahme), dass der UserManager mit Asp.Net 5 auf das Aktualisieren von cookie-basierten Ansprüchen achtet, wenn Sie diese für einen Benutzer ändern (Ansprüche, Rollen ...) und daher einen HttpContext für die Anmeldung benötigen / Logout-Aktionen und Cookie-Zugriff.
Tags und Links c# unit-testing asp.net-core asp.net-core-mvc xunit.net