2017-06-21 75 views

回答

1

私有对象是只在类的主体访问,所以为了测试他们必须执行下列操作之一:

  1. 使私有对象公开 或
  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