在單元測試中可以訪問私人領域嗎?使用MSTest測試私人領域
5
A
回答
7
獲得私有字段或方法,一般的方法是使用反射。但是,單元測試框架包含一個幫助類,PrivateObject
,以使這更容易。請參閱docs。一般來說,當我用這個,我已經結束了做一個擴展方法如下所示:
public static int GetPrivateField(this MyObject obj)
{
PrivateObject po = new PrivateObject(obj);
return (int)po.GetField("_privateIntField");
}
如果你需要得到私人領域在一個靜態類,但是,你需要去直接反思。
2
1
不是說這是一個好主意,但我已經看到InternalsVisibleTo使用。
看這個問題:一個比較冷門的答案:
相關問題
- 1. 何時不使用私人領域?
- 2. 使用ProGuard混淆私人領域
- 3. 私人領域不編譯
- 4. Junit的私人領域
- 5. INotifyPropertyChanged的帶私人領域
- 6. 模式與私人領域
- 7. 私人領域是超
- 8. 嘲笑私人領域
- 9. ReflectionUtils和BeanUtils用於私人領域
- 10. 私人領域的垃圾收集
- 11. hibernate如何訪問私人領域?
- 12. 枚舉值()長度VS私人領域
- 13. 關於改變私人領域
- 14. 私人財產領域的StackOverflow例外
- 15. 結構 - 進入私人領域
- 16. java有什麼私人領域?
- 17. 摘要Scala的特質私人領域
- 18. 私人領域與公共accessor在c + +
- 19. Junit的:與私人領域@Autowired
- 20. 私人領域的公共方法
- 21. RequiredAttribute標籤上的私人領域
- 22. 訪問Java中的私人領域
- 23. Python的私人領域與getter方法
- 24. Reflection.Emit私人領域/財產訪問
- 25. 如何模擬私人領域?
- 26. 使用MsTest測試UI
- 27. 有什麼好的做法來測試/注入私人領域的C#
- 28. Vb.Net作用域的問題 - 私人領域
- 29. 使用TypeScript在JavaScript中關閉真正的私人領域
- 30. 參考私人領域使用番石榴反射
謝謝@mike我已經嘗試過了,效果不錯。 – Michelle
@Michelle不客氣。 –
您可以使用['PrivateType'](http://msdn.microsoft.com/zh-cn/library/microsoft.visualstudio.testtools.unittesting.privatetype.aspx)對象獲取並設置靜態類中的私有字段(與PrivateObject類型相反!) – stuartd