Ich bin mit Asp.Net Identität in meiner MVC-Anwendung und ich habe eine Klasse mit dem Namen ApplicationSignInManager
die wie folgt aussieht außer Kraft gesetzt hat: JetztMoq Erhalten Sie eine Basisklasse Methode aufzurufen, die nicht
public class ApplicationSignInManager : SignInManager<ApplicationUser, string>
{
public ApplicationSignInManager(ApplicationUserManager userManager,
IAuthenticationManager authenticationManager)
: base(userManager, authenticationManager)
{
}
public override Task<ClaimsIdentity> CreateUserIdentityAsync(ApplicationUser user)
{
return user.GenerateUserIdentityAsync((ApplicationUserManager)UserManager);
}
public static ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options,
IOwinContext context)
{
return new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(),
context.Authentication);
}
}
, würde ich mag einen Komponententest für eine Aktion auf einem Controller schreiben. Ich verwende das Framework Microsoft Visual Studio Unit Test mit Moq 4.5.10.
Die Aktion ruft die PasswordSignInAsync
Methode, die virtual
in der Basisklasse deklariert wird SignInManager<ApplicationUser, string>
aber es ist nicht in der Kinderklasse ApplicationSignInManager
außer Kraft gesetzt.
Ich habe diese Option versucht, auch:
var mockSignInManager = new Mock<ApplicationSignInManager>()
{ CallBase = true };
mockSignInManager.Setup(
m => m.PasswordSignInAsync(string.Empty, string.Empty, true, true));
Aber PasswordSignInAsync
nicht in der Intellisense angezeigt und der Compiler beschwert sich, diese Methode nicht auf ApplicationSignInManager
finden.
Wie bekomme ich es zu zeigen?