Ich habe einen benutzerdefinierten RoleProvider (Standard-Webforms, keine MVC) erstellt und ich möchte es testen. Der Provider selbst integriert sich in eine benutzerdefinierte Implementierung von IIdentity (mit einigen hinzugefügten Eigenschaften).Moq benutzerdefinierte IIdentität
Ich habe dies im Moment:
var user = new Mock<IPrincipal>();
var identity = new Mock<CustomIdentity>();
user.Setup(ctx => ctx.Identity).Returns(identity.Object);
identity.SetupGet(id => id.IsAuthenticated).Returns(true);
identity.SetupGet(id => id.LoginName).Returns("test");
// IsAuthenticated is the implementation of the IIdentity interface and LoginName
Jedoch, wenn ich diesen Test in VS2008 laufen dann bekomme ich folgende Fehlermeldung:
Ungültige Setup auf einem Nicht-overridable Mitglied: id => id.IsAuthenticated
Warum passiert das? Und am wichtigsten, was muss ich tun, um es zu lösen?
Grz, Kris.
Was meinst du mit den verwendeten Variablen als virtuals deklarieren? Du meinst in meinem Test selbst? – XIII
@XIII zusätzliche Erklärung hinzugefügt.Es sollte in Ihrer konkreten Klasse –
Thx für Erklärung getan werden. Ich habe jedoch keinen Zugriff auf den Code der benutzerdefinierten IIdentity-Implementierung. Gibt es eine Problemumgehung? – XIII