如何將單元測試寫入內部類?測試內部類
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. SCNNode點內部測試
- 3. casperjs測試內部網站
- 4. 如何獲取測試類實例JUnit從ClassRunner內部運行測試用例?
- 5. 從內部測試訪問ScalaTest測試名稱?
- 6. iOS測試飛行內部測試 - 添加第二個構建?
- 7. 無法添加構建以測試內部測試器
- 8. 如何運行所有的內部類的JUnit測試一次
- 9. 如何測試執行內部操作的引用類?
- 10. 斷言被測試的類內部對象
- 11. 如何使用EasyMock測試內部類別
- 12. 你稱之爲用於測試的內部類是什麼?
- 13. 單元測試一個內部構造函數的類
- 14. 單元測試ASP.NET Core中的內部類
- 15. 無法使用EasyMock編寫內部類的測試用例
- 16. 使用NUnit測試私有方法和內部類?
- 17. 奇怪的問題單元測試內部類與VS 2008
- 18. 在內部靜態類中測試void方法的單元
- 19. 是否需要測試公共內部類?
- 20. 內部類和方法應該如何測試?
- 21. 使用酶,sinon測試映像內部反應組件內部
- 22. 使用XPath XSLT內部測試條
- 23. TestFlight內部測試人員和UDID
- 24. 如何測試內部方法
- 25. 找不到包「測試/內部/ testdeps」
- 26. 內部測試.each()和突破
- 27. 如何用phpunit測試內部數組
- 28. 測試對象內部和對象
- 29. iTunes Connect內部測試頁面損壞
- 30. 內部測試模型 - Django 1.7問題
你說你不會推薦這一點,但你會如何你解決這樣的事情? 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