JUnit测试用例是否真的应该位于课程的旁边?

jim*_*rra 1 java junit

C#developer here,通过基本的Java示例.JUnit测试用例似乎与我见过的教程中的测试类打包在一起.是对的吗?在C#中,我们创建了一个新的Test项目 - 在Java中,常见的模式是相似的吗?

Nic*_*olt 7

正如我在评论中所说,现在的事实标准是Maven结构,其中测试是相同的package(C#中的命名空间),但是在不同的源根(src/main/javasrc/test/java分别)下,尽管你可以自由地将测试放在任何你想要的地方.

但是,将测试放在同一个包中会有一些好处,因为Java可见性规则意味着测试可以访问这两个protected打包私有方法,从而允许它对被测试的类更加干预(这不是你应该一直依赖的东西,但它现在又一次有用).

无论如何,我离题了,结构看起来像这样:

my-project
+ src
  + main
  | + java
  |   + com
  |     + company
  |       + MyNewClass
  + test
    + java
      + com
        + company
          + MyNewClassTest
Run Code Online (Sandbox Code Playgroud)

在Java世界中,拥有外部构建工具是常态,Maven是本月的当前风格.大多数IDE都支持它,当它们与Maven项目文件(pom)同步时,它将识别这种结构.

这并不意味着如果您不使用Maven就不能使用此结构,您只需手动将其他源根添加到IDE项目/模块.

在IntelliJ中,您可以在"源"选项卡上的"项目设置" - >"模块"中执行此操作.你在Eclipse中做了类似的事情,但不确定确切的路径(确定有人会在评论中添加如何:-)