Sie haben ein Problem mit Ihrem Code. Ihre Aktion hängt von einer statischen Methode ab: Membership.CreateUser
. Und wie Sie wissen, sind statische Methoden PITAs zum Komponententest.
Sie könnten also die Kopplung schwächen, indem Sie eine Abstraktionsebene einführen:
%Vor%und dann eine Implementierung, die den aktuellen Mitgliedschaftsanbieter verwendet:
%Vor%und schließlich der Controller:
%Vor%OK, jetzt, da wir die Kupplung geschwächt haben wir einen Mockframework nutzen könnten den Dienst in dem Unit-Test zu verspotten und es trivial machen.
Zum Beispiel mit Rhino Mocks Sie die folgenden Tests erstellen könnten die zwei Fehlerfälle abzudecken:
%Vor%Der letzte Test ist der Erfolgsfall. Wir haben immer noch ein Problem damit. Das Problem ist die folgende Zeile:
%Vor%Was ist das? Es handelt sich um einen statischen Methodenaufruf. So gehen wir auf die gleiche Weise, wie wir mit dem Mitgliedschaftsanbieter haben die Kopplung unserer Controller und das Formularauthentifizierungssystem zu schwächen.