2009-07-27 10 views
1

Ich habe einen benutzerdefinierten RoleProvider in einer benutzerdefinierten Bibliothek erstellt. Ich würde es gern testen. Via Moq habe ich eine gefälschte HttpContextBase erstellt. Wie übergebe ich dies an den zu testenden RoleProvider?Unit-Test benutzerdefinierte RoleProvider mit Moq?

Die Identität ist ein benutzerdefinierter Test implementation class. Das funktioniert gut. Ich weiß nur nicht, wie ich den falschen Kontext in meinem Provider weitergeben soll. Dies ist keine MVC-Anwendung, sondern Standard-Webformulare, wenn diese Informationen benötigt werden.

Grz, Kris.

+0

Im Moment versuche ich dies: http://haacked.com/archive/2005/06/11/Simulating_HttpContext.aspx. – XIII

Antwort

1

Sie könnten Dependency Injection (DI) verwenden und es über den Konstruktor Ihres benutzerdefinierten RoleProviders übergeben.

public MyRoleProvider(HttpContextBase httpContext) 
{ 
    // ... 
} 

Damit können Sie die Moq-Instanz über den Konstruktor übergeben.

+0

Und dann, wie man damit umgeht? – XIII

+0

Speichern Sie es als eine Mitgliedsvariable. –

+0

Sorry, ich verstehe es nicht. Der roleprovider kann nicht (codewise) damit belästigt werden. Ist eine andere Problemumgehung möglich? – XIII