JUnit包命名的最佳实践?

时间:2014-03-05 16:49:13

标签: java junit

我试图找到一些最佳实践来命名Java包进行测试。我会一直在思考:

测试:

com.example.MyClass

应该在:

com.example.test.MyClassTest

2 个答案:

答案 0 :(得分:7)

通常我将测试类放在相同的包中,但是在不同的源根下。除此之外,这允许您测试具有默认可见性的成员(实际上是类)。有时我甚至会创建一些方法,否则这些方法将是私有的,包级别的方法可以使测试更容易,因为它知道它只会产生有限的影响。这在很大程度上取决于您正在开发的背景。 (我的大多数代码都是在一个受信任的环境中编写的;我想限制优雅的访问,但我并不担心任何人会积极尝试使用他们不应该使用的方法。而且我使用注释来表明意图。)

您肯定想要一种简单的方法将测试类从生产类中分离出来,既可以用于部署目的,也可以让您专注于"只需要生成代码"在适当的时候。但是,对于测试和生产代码使用相同的包声明,我没有任何不利之处。

答案 1 :(得分:1)

最好的选择之一是将测试放在另一个源文件夹中。通过这种方式,您可以轻松地从测试中分离出实际来源,例如:在构建发布时。看看Mavens default directory layout。即使没有Maven,propper IDE也应该能够处理不同的源文件夹。

对于包:如果您有两个不同的源文件夹,则可以将测试类放在同一个包中。这有几个优点,例如可以从测试中访问受包受保护的成员或使用MoreUnit等漂亮的插件。