我在Ruby世界长期工作后回到Java,我对JUnit测试以及我正在测试的源代码有疑问。
如果我的公司有一套图形代码,我们可以将其称为com.example.graphics
,我是否应该将测试包含在该软件包中,或者是否应将它们包含在单独的软件包中,例如{{1} }?
答案 0 :(得分:34)
在同一个java包中没问题。如果您需要访问包私有类,方法或字段,实际上是必需的。但是,源应该在逻辑上分开:
src/main/com/example/graphics
src/test/com/example/graphics
答案 1 :(得分:1)
如果您不需要访问私有类,那实际上是一个风味问题。
我有时甚至倾向于创建一个引用产品项目的额外测试项目。 因此,产品和测试明显分开。
答案 2 :(得分:1)
我个人将所有测试保存在同一个包中,但是在Maven的测试树中(我总是用于Java项目)。考虑将Maven用于您的构建 - 它可以为您节省大量工作。它强制执行与bkail提到的类似的结构,但为您提供的不仅仅是标准化的项目文件夹布局 - 项目生命周期(清理,编译,打包,测试),插件等。
答案 3 :(得分:0)