我是使用nunit進行單元測試的新手(通常是Java開發)。在爲類上的私有方法創建單元測試時,它看起來好像測試文件必須與被測試的類位於同一個包中。避免導出單元測試的API的典型方法是什麼?我可以使包/保護的類/測試方法?還是開發人員通常有一個單獨的版本發佈排除單元測試文件?創建nunit測試,而不用api輸出它們
0
A
回答
0
測試文件不一定必須與被測試的類位於同一個包中。事實上,將測試文件放在一個完全獨立的軟件包中是一種很好的做法,可以讓他們測試公共API而不必關心軟件包級別的實現細節。
或者,您可以將構建腳本(例如Nant)設置爲在構建發行版可執行文件時忽略包含「測試」的文件。
1
我可以告訴IntelliJ或Ant不要在部署中打包JUnit測試。我在源代碼的一個單獨的目錄中進行了測試,這是可能的。
不要將源代碼和測試類混合在一起。保持它們分開,以便使用於部署的工具/腳本變得更加簡單。
0
就我個人而言,我的方法只是測試公開的功能,所以你最終只能測試封裝良好的部件。
這通常會導致我的設計包含具有定義好的功能的小類,這些功能更易於測試。
一般來說,當單元測試你不應該關心你測試內部的東西時,所以我覺得這是處理它的最好方法。
我也同意最好是單獨測試和生產代碼。
0
保持測試源代碼不在應用程序源代碼中。一般來說,只測試公開的功能。如果您確實需要測試私人行爲,請創建一個測試對象來擴展實際對象,並允許publec訪問私人行爲。
0
我認爲將您的測試代碼移出CUT(待測試類)包是錯誤的。在某些情況下,您可能想要測試受保護的方法或類,並將測試代碼放在另一個包中,這樣做會很難或不可能。
更好的解決方案是爲您的測試代碼創建一個單獨的目錄,該代碼僅反映生產代碼的包裝結構。這是我做的:
src/main/java/com/example/Foo.java
src/test/java/com/example/FooTest.java
然後生成腳本可以很簡單地忽略src/test/**
當談到時間爲打包和部署。
相關問題
- 1. NUnit創建測試用例
- 2. 用resharper創建NUnit測試
- 3. NUnit .NET創建測試
- 4. 如何使用ReSharper創建NUnit測試?
- 5. 我創建了NUnit測試,現在我該如何運行它們?
- 6. 測試用戶頁面 - 我們可以通過API創建它們嗎?
- 7. 列出測試但不運行它們
- 8. 列出所有摩卡測試而不執行它們
- 9. 試圖從Mono NUnit測試中獲得調試輸出
- 10. Jenkins NUnit/XUnit測試說明:如何將它們導入結果?
- 11. 在RobotFramework上創建java測試而不運行它
- 12. 如何讓MoreUnit調試測試而不是運行它們?
- 13. 如何測試創建ec2實例而不實際創建它的腳本?
- 14. 創建流而不是臨時文件並使用它們並丟棄它們
- 15. 使用Visual Studio 2008進行測試的文本輸出+ Resharper + NUnit
- 16. 使用NUnit測試腳本並顯示輸出
- 17. 添加調用NUnit測試到NLog輸出
- 18. 如何編寫NUnit單元測試,而不必使用try catch語句來包圍它們?
- 19. 在NUnit測試
- 20. Nunit - 測試EXE
- 21. 用於自動創建nunit測試的Visual Studio插件?
- 22. 從Pex自動創建NUnit測試用例
- 23. NUnit使用ModelViewFactory和存儲庫創建一個測試Mock
- 24. NUnit測試應用程序,而不是環境或數據庫
- 25. 創建SoapRequest而不用Suds/Python發送它們
- 26. JUnit Test Runner在運行它們之前創建測試
- 27. NUnit-Console在NUnit 3.x中找不到用於NUnitForms測試的測試裝置
- 28. 單元測試期間創建文件 - 無法打開它寫 - TestDriven.Net和NUnit
- 29. Maven - 如何編譯測試而不運行它們?
- 30. 製作茉莉花列出所有的測試,而不是執行它們