2017-06-21 76 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