我正在关注本教程,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