如何將單元測試寫入內部類?測試內部類
Q
測試內部類
5
A
回答
15
您可以編寫測試,指定頂級類的外部接口的行爲。該類是否使用內部類來實現該行爲,是該類的實現細節,並且測試不需要知道任何關於它的內容。
如果內部類無法通過頂層類的接口進行充分測試,那麼通常最好將內部類移出並直接作爲新的頂級類進行測試。想要測試內部類是一種代碼異味,內部類可能足以成爲頂級類。
1
當使用MS Visual Studio進行單元測試時,您只需創建一個private Accessor即可。內部它與我認爲的反射一起工作。只要看看生成的代碼。
2
你不直接測試它。它將通過它定義的類來測試。
而且,如果您應用TDD,就像這個問題標籤目前所暗示的那樣,您只是爲那個內部類編寫這個調用的測試是什麼?我的意思是說它不是一個標準的班級,由你正在從事的班級私人擁有?
1
我們使用了一個輔助類,它使用反射來加載和調用內部類的方法。也可以使用DEBUG符號如
#if DEBUG
public
#else
internal
#endif
class MyInternalClass
{
...
}
然而艾司科Luontola的答案是比較正確的,因爲它是功能或業務需求,哪些是最重要在編譯時改變可訪問性。代碼覆蓋率過於集中而不是測試重要的風險領域很容易。
5
不是我推薦它,但你也可以使用InternalsVisibleToAttribute。
0
相關問題
- 1. 如何測試內部類庫?
- 2. 測試飛行內部測試問題
- 3. casperjs測試內部網站
- 4. SCNNode點內部測試
- 5. Python中的單元測試元類和內部類
- 6. 如何獲取測試類實例JUnit從ClassRunner內部運行測試用例?
- 7. 將測試類拆分爲部分類?
- 8. 從內部測試訪問ScalaTest測試名稱?
- 9. 測試內部方法的單元測試公共方法
- 10. 無法添加構建以測試內部測試器
- 11. iOS測試飛行內部測試 - 添加第二個構建?
- 12. 是否需要測試公共內部類?
- 13. 單元測試ASP.NET Core中的內部類
- 14. 單元測試一個內部構造函數的類
- 15. 你稱之爲用於測試的內部類是什麼?
- 16. 內部類和方法應該如何測試?
- 17. 在內部靜態類中測試void方法的單元
- 18. 如何測試執行內部操作的引用類?
- 19. 斷言被測試的類內部對象
- 20. 是否有可能使用MSTest從C++ dll測試「內部」類?
- 21. 類內部的python單元測試方法
- 22. 如何編寫內部類中的方法的測試方法?
- 23. 使用NUnit測試私有方法和內部類?
- 24. 奇怪的問題單元測試內部類與VS 2008
- 25. 模擬內部函數當前類的測試
- 26. 類內部的鼻子測試生成器
- 27. 單元測試私有內部類方法
- 28. 用Moq模擬內部類進行單元測試
- 29. 如何使用EasyMock測試內部類別
- 30. 無法使用EasyMock編寫內部類的測試用例
你說你不會推薦這一點,但你會如何你解決這樣的事情? http://stackoverflow.com/questions/15440935/how-to-test-internal-class-library – 2013-03-18 10:17:02
@Thomas:正如Esko在他的回答中所述。您可以通過公共接口間接測試內部API,也可以將您的內部API升級爲公開並直接對其進行測試。 – 2013-03-18 10:39:30