Frage

Ich habe ein Problem mit teilweise spöttisch mit Rhino Mocks:

var authentication = (FormsAuthenticationService)_mocks.PartialMock(
  typeof(FormsAuthenticationService));
Expect.Call( delegate{ authentication.SetAuthCookie(null, null); }).IgnoreArguments();

.. und ich bekomme auf Nullreferenceexception "Expect." Linie ..

Ich will nur hinzufügen, dass FormsAuthenticationService implementiert IAuthentication

War es hilfreich?

Lösung

Sie haben einen guten Grund versucht man, die physische Klasse zu verspotten, anstatt die Schnittstelle? Ich frage das, weil es zwei mögliche Probleme mit spöttischen FormsAuthenticationService:

  1. Die Klasse kann keinen Standard hat parameter Konstruktor (in denen Fall müssen Sie eine angeben Verfahren zur überlasteten mocks.PartialMock).

  2. Die SetAuthCookie hat virtuellen sein. Mock Frameworks können in der Regel nur nicht versiegelte Klassen verspotten und nur die virtuellen Mitglieder einer solchen Klasse.

Um diese Probleme zu bekommen, würde ich stattdessen spöttisch IAuthentication empfehlen. Mocking Schnittstellen verfügt nicht über diese Einschränkungen. Hier ist der Code, den Sie schreiben würde:

var authentication = _mocks.DynamicMock<IAuthentication>();
Expect.Call(() => authentication.SetAuthCookie(null, null)).IgnoreArguments();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top