相关疑难解决方法(0)

模拟SignInManager

使用Moq和xUnit进行单元测试的新手.我试图模拟一个SignInManager在控制器构造函数中使用的构建单元测试.我可以为SignInManager构造函数找到的文档说它接受一个UserManagerAuthenticationManager对象:https://msdn.microsoft.com/en-us/library/mt173769(v = vs.108).aspx #M:Microsoft.AspNet.Identity .Owin.SignInManager`2.

当我尝试模拟控制器时,我收到一个错误,说它无法实例化SignInManagerAuthenticationManager类的代理.

错误:

"消息:Castle.DynamicProxy.InvalidProxyConstructorArgumentsException:无法实例化类的代理:Microsoft.AspNetCore.Identity.SignInManager1 [[Models.AppUser ,, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]].找不到与给定参数匹配的构造函数:Castle.Proxies.UserManager`1Proxy Castle.Proxies.AuthenticationManagerProxy"

单元测试:

public void Can_Send_Password_Reset_Email()
{
    //Arrange
    //create mock services
    Mock<IEmailService> mockEmailService = new Mock<IEmailService>();
    Mock<ILessonRepository> mockRepo = new Mock<ILessonRepository>();
    Mock<UserManager<AppUser>> mockUsrMgr = GetMockUserManager();
    var mockSignInMgr = GetMockSignInManager();
    Mock<UserValidator<AppUser>> mockUsrVal = new Mock<UserValidator<AppUser>>();
    Mock<PasswordValidator<AppUser>> mockPwdVal = new Mock<PasswordValidator<AppUser>>();
    Mock<PasswordHasher<AppUser>> mockPwdHshr = new Mock<PasswordHasher<AppUser>>();
    Mock<ForgotPasswordModel> model …
Run Code Online (Sandbox Code Playgroud)

c# asp.net unit-testing moq asp.net-core

5
推荐指数
4
解决办法
3552
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

c# ×1

moq ×1

unit-testing ×1