如何使用NUnit測試私有方法和內部類?使用NUnit測試私有方法和內部類?
12
A
回答
4
我通常不會。如果您徹底測試了私有方法和內部類的公共方法,那麼您應該能夠測試私有功能的全部範圍而不用公開它。
0
您必須公開一種方法來調用它們,可能通過特定於測試的派生類。
30
私有方法:
如果你想測試非公共方法,它通常意味着你就錯了。
如果有要測試的功能,但不希望在您的課堂上公開,則代碼正試圖告訴您一些事情。你的班級可能有太多的責任。您應該認真考慮將私有功能提取到新類中,爲新類編寫測試,並讓舊類具有新類的私有實例。
內部類:
這一個是更有效,特別是如果你正在寫爲他人重用一個類庫。你可能有不是爲一般用途設計的類,而是你想爲其編寫單元測試。
對於這種情況,請看 InternalsVisibleToAttribute。
2
我處理這個問題的方式是我公開所有的方法。我知道這聽起來很糟糕,但請忍受一下。
使用IoC時,每個具有某種邏輯的類都有一個接口。因此,基本上,你對接口進行編碼,而不是實際的實現。你要做的是將所有的方法標記爲public,並且不會影響類的使用方式,除非它可以爲該類中的每個方法編寫單元測試。
相關問題
- 1. 集成測試私有類和方法
- 2. 測試其調用內部調用私有方法
- 3. 使用Pex測試私有方法
- 4. Junit測試私有方法
- 5. 私有方法或內部類
- 6. 使用反射測試抽象類的私有方法
- 7. 測試方法(NUnit的2.6)
- 8. 如何編寫具有受保護方法的內部類型類的nunit測試用例?
- 9. 很長的方法和測試私有方法 - 設計問題
- 10. 測試和使用NUnit和FitNesse的
- 11. 如何測試私有方法?
- 12. Akka的單元測試私有方法
- 13. 測試私有方法,澄清需要
- 14. 單元測試私有方法的C#
- 15. 如何測試私有方法?
- 16. 私有方法的單元測試c#
- 17. 使用Nunit測試的項目類型
- 18. 單元測試複雜的類有許多私有方法
- 19. 有很多私有方法的Java測試類
- 20. 單元測試私有類
- 21. 內部類和方法應該如何測試?
- 22. 使用Moq測試私有方法不起作用
- 23. 測試內部類
- 24. 無法從類內部訪問私有方法?
- 25. MEF和使用NUnit的單元測試
- 26. 用於內部和私有方法的AOP Java
- 27. 如何使用DUnit測試私有方法?
- 28. 我應該使用RSpec測試私有方法嗎?
- 29. 測試方法:使用'私人瀏覽'測試沒有緩存的網站?
- 30. NUnit的 - 全球方法每個測試
還值得注意的是,InternalsVisibleTo可用於公開僅由測試程序集使用的構造函數/方法,並將這些構造函數/方法隱藏在客戶代碼中。 – jlafay 2011-05-03 19:23:42