簡體   English   中英

在與Java中的源代碼相同的包中包含單元測試

[英]Include Unit tests in the same package as the source code in Java

我在Ruby世界中經歷了很長一段時間后回到Java中,我對JUnit測試以及我正在測試的源代碼有疑問。

如果我有一個公司的圖形代碼包,我們稱之為com.example.graphics ,我是否應該在該包中包含我的測試,或者它們是否應該包含在單獨的包中,例如com.example.graphics.test

在同一個java包中沒問題。 如果您需要訪問包私有類,方法或字段,實際上是必需的。 但是,源應該在邏輯上分開:

src/main/com/example/graphics
src/test/com/example/graphics

如果您不需要訪問私有類,那實際上是一個風味問題。

我有時甚至傾向於創建一個引用產品項目的附加測試項目。 因此,產品和測試明顯分開。

我個人將所有測試保存在同一個包中,但是在Maven的測試樹中(我總是用於Java項目)。 考慮將Maven用於您的構建 - 它可以為您節省大量工作。 它強制執行與bkail提到的類似的結構,但為您提供的不僅僅是標准化的項目文件夾布局 - 項目生命周期(清理,編譯,打包,測試),插件等。

將測試放在一個單獨的包中確實可以避免在您希望客戶端使用的包范圍內意外地使用某些方法或類的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM