在Ruby世界中,我经历了一段很长的时间之后又回到了Java,并且我有一个关于JUnit测试和我正在测试的源代码的问题。将单元测试与Java源代码包装在同一个包中
如果我有一个包的图形代码为我的公司,让我们把它叫做com.example.graphics
,我应该包括我在那个包测试过或者他们应该被包含在一个单独的包,像com.example.graphics.test
?
在Ruby世界中,我经历了一段很长的时间之后又回到了Java,并且我有一个关于JUnit测试和我正在测试的源代码的问题。将单元测试与Java源代码包装在同一个包中
如果我有一个包的图形代码为我的公司,让我们把它叫做com.example.graphics
,我应该包括我在那个包测试过或者他们应该被包含在一个单独的包,像com.example.graphics.test
?
在相同的java包中是好的。如果您需要访问包私有的类,方法或字段,它实际上是必需的。但是,源应该在逻辑上是分开的:
src/main/com/example/graphics
src/test/com/example/graphics
+1,如Maven Java Archetype标准目录布局所示 – ramirogm 2010-05-24 16:34:53
如果您不需要访问私有类,它实际上是一个味道的问题。
我有时甚至倾向于创建一个引用产品项目的附加测试项目。因此,产品和测试显然是分开的。
我亲自将所有的测试都保存在同一个包中,但在Maven(我总是用于Java项目)的测试树中。考虑将Maven用于您的构建 - 它可以为您节省大量工作。它强制使用类似于bkail所提到的结构,但它给你的不仅仅是标准化的项目文件夹布局 - 项目生命周期(清理,编译,打包,测试),插件等。在一个单独的包
把测试不倾向于避免意外具有在封装范围某些方法或类你意客户端使用的问题。
另请参阅http://stackoverflow.com/questions/440786/junit-java-testing-non-public-methods – Raedwald 2014-06-30 22:53:38