-1
我正在为Visual Studio 2012中的现有类“Person”编写单元测试,并且该类有具有2个参数和一些业务逻辑的构造函数。c#中的无参数构造函数#
TestMethod()
public void VerifyPersonTest()
{
//Using PrivateObject class
PrivateObject privateHelperObject = new PrivateObject(typeof(Person));
//Some business logic
}
当我尝试上面的测试运行有一个例外“system.missingMethodException而{”此对象定义无参数的构造函数。“}”。所以我加入参数的构造函数Person类和能运行测试没有任何问题。
我有以下问题
1)正如我已经添加参数的构造函数Person类,这将打破Person类的任何现有的功能?
2)PrivateObject privateHelperObject = new PrivateObject(typeof(Person));
上述语句调用person类的无参数构造函数。假设我想用2个参数调用构造函数,我该如何编写上面的语句?
'新PrivateObject(typeof运算(人));'不会调用类的参数的构造函数'Person'。您正在通过构造函数创建一个'PrivateObject'的实例,该构造函数采用'Type'。它不需要'Person'的实例。 –
MissingMethodException意味着非常不同的东西。您没有运行您编译的相同代码。 DLL地狱问题。您可能通过添加此构造函数并重新构建DLL来修复它。修复是重建它,而不是添加构造函数。所以你最好再删除一次。 –
@HansPassant谢谢 – user2580179