【问题标题】:Include Unit tests in the same package as the source code in Java在与 Java 源代码相同的包中包含单元测试
【发布时间】:2011-02-23 07:40:19
【问题描述】:

在 Ruby 世界工作了很长时间后,我又回到了 Java,我有一个关于 JUnit 测试和我正在测试的源代码的问题。

如果我有我公司的图形代码包,我们称之为com.example.graphics,我应该将我的测试也包含在那个包中还是应该包含在一个单独的包中,比如com.example.graphics.test

【问题讨论】:

标签: java unit-testing junit packages


【解决方案1】:

将测试放在单独的包中确实可以避免在包范围内意外拥有您希望客户使用的某些方法或类的问题。

【讨论】:

    【解决方案2】:

    我个人将所有测试保存在同一个包中,但在 Maven 的测试树中(我总是将它用于 Java 项目)。考虑在您的构建中使用 Maven - 它可以为您节省大量工作。它强制执行与 bkail 提到的类似的结构,但为您提供的不仅仅是标准化的项目文件夹布局 - 项目生命周期(清理、编译、打包、测试)、插件等。

    【讨论】:

      【解决方案3】:

      如果您不需要访问私有课程,这实际上是一个风格问题。

      有时我什至倾向于创建一个引用产品项目的附加测试项目。 因此,产品和测试是明确分开的。

      【讨论】:

        【解决方案4】:

        在同一个java包中就可以了。如果您需要访问包私有的类、方法或字段,这实际上是必要的。但是,来源在逻辑上应该是分开的:

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

        【讨论】:

        • +1,按照 Maven Java Archetype 标准目录布局的建议
        • 我建议打开一个新问题,而不是评论一个 8 年前的答案。我建议专注于您遇到的具体问题以及您为解决该问题所做的工作。
        猜你喜欢
        • 1970-01-01
        • 2017-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多