-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