【发布时间】:2022-01-20 22:57:07
【问题描述】:
我正在尝试使用 Moq 创建一个单元测试来测试 Microsoft.AspNetCore.Identity 用户管理器。我知道 Moq 很适合模拟接口,但 UserManager 没有接口。
这是我的代码:
Mock<UserManager<User>> userManagerMock = new Mock<UserManager<User>>();
// rest of my code ...
这是错误:
Castle.DynamicProxy.InvalidProxyConstructorArgumentsException : Can not instantiate proxy of class: Microsoft.AspNetCore.Identity.UserManager`1[[WebAPI.Core.Model.User, Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].
Could not find a parameterless constructor.
【问题讨论】:
-
能否提供具体的代码示例?或者你可以先看看这个帖子,可能对你有帮助:stackoverflow.com/questions/48189741/mocking-a-signinmanager
-
看起来
UserManager<User>没有无参数构造函数。如果你想模拟一个具体的类,它应该有一个无参数的构造函数。否则,你应该模拟它的一个接口。
标签: c# unit-testing asp.net-core moq xunit