我正在關注本教程,https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest如何測試.net標準測試項目中的私人對象?
但我沒有可用的PrivateObject類型,所以我想知道是否可以使用.net標準2.0項目測試私人對象。
謝謝。
我正在關注本教程,https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest如何測試.net標準測試項目中的私人對象?
但我沒有可用的PrivateObject類型,所以我想知道是否可以使用.net標準2.0項目測試私人對象。
謝謝。
私有對象是隻在類的主體訪問,所以爲了測試他們必須執行下列操作之一:
你總是可以使用反射互動
ClassToTest obj = new ClassToTest();
Type t = typeof(ClassToTest);
FieldInfo f = t.GetField("field", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
f.SetValue(obj, "Don't panic");
t.InvokeMember("PrintField",
BindingFlags.InvokeMethod | BindingFlags.NonPublic |
BindingFlags.Public | BindingFlags.Instance,
null, obj, null);
你應該爲此編寫一個輔助類,否則你的測試會考慮到許多相同的代碼
P.S.代碼示例從here