【发布时间】:2017-11-02 04:58:27
【问题描述】:
我在运行单元测试项目时遇到以下问题。
无法获取类 ******** 的默认构造函数
[TestClass]
public class PersonRegistration
{
private ILoggingService _loggingService;
private IUserManager _userManager;
public PersonRegistration(IUserManager userManager, ILoggingService loggingService)
{
this._userManager = userManager;
this._loggingService = loggingService;
}
[TestMethod]
public void TestMethod1()
{
RegisterBindingModel model = new RegisterBindingModel();
AccountController ac = new AccountController(_userManager, _loggingService);
model.UserName = "test123@gmail.com";
var result = ac.Register(model);
Assert.AreEqual("User Registered Successfully", result);
}
如何解决。一些答案说使用无参数构造函数。但是这里我需要参数。
RegisterBindingModel()
public class RegisterBindingModel
{
public RegisterBindingModel();
[Display(Name = "User name")]
[Required]
public string UserName { get; set; }
}
【问题讨论】:
-
什么课程的辅导员?你能显示
RegisterBindingModel的构造函数吗? -
只需添加一个无参数构造函数。我相信测试框架需要它。
-
您确定需要带有测试夹具参数的构造函数吗?我相信你可以通过模拟获得所有依赖项,当然如果你进行单元测试
-
那么,测试运行程序是如何知道如何从其中变出
IUserManager和ILoggingService实例的?
标签: c# asp.net asp.net-mvc constructor default-constructor