Java 单元测试必须位于同一个包中?

Java 单元测试必须位于同一个包中?,java,unit-testing,integration-testing,Java,Unit Testing,Integration Testing,JUnit的一本书说“受保护的方法…这是测试类与它们正在测试的类位于同一个包中的原因之一” 有人能分享他们如何组织单元测试和集成测试(包/目录)的经验吗?在我的构建过程中,源目录是 java/src java/test/unit java/test/integration 测试和源代码位于不同的路径中,但包是相同的 java/src/com/mypackage/domain/Foo.java java/test/unit/com/mypackage/domain/FooTest.java ja

JUnit的一本书说“受保护的方法…这是测试类与它们正在测试的类位于同一个包中的原因之一”


有人能分享他们如何组织单元测试和集成测试(包/目录)的经验吗?

在我的构建过程中,源目录是

java/src
java/test/unit
java/test/integration
测试和源代码位于不同的路径中,但包是相同的

java/src/com/mypackage/domain/Foo.java
java/test/unit/com/mypackage/domain/FooTest.java
java/test/integration/com/mypackage/domain/FooTest.java
我更喜欢这个。它帮助您以一种很好的方式将测试源和测试资源与应用程序源分开,并且仍然允许它们成为同一个包的一部分

我在maven和基于ant的项目中都使用它

  project
    |
    +- src
        |
        +- main
        |    |
        |    +- java // com.company.packge (sources)
        |    +- resources
        |
        +- test
             |
             +- java // com.company.package (tests)
             +- resources