建立标准
我组织代码,以便test
-folder具有与main
-folder相同的软件包。我的测试类的名称与我的类相同,但附加了Test。
到现在为止还挺好。
问题
我发现自己在自己的项目的util
-folders中创建了一个test
-package。在这里,我保留了一些特定于项目的“测试帮助程序类”。
src
│
└───main
│
├───java
│ │
│ ├─── myPackage
│ MyClass.java
│ AnotherClass.java
│
├───test
│
├─── myPackage
│ MyClassTest.java
│ AnotherClassTest.java
│
├─── util
NiceTestUtil.java
“问题”是我讨厌这种不对称性。
util
中的test
-packages感觉应该在util
中测试相应的main
-packages。相反,它包含我的帮助程序类。我一直在想
util
包属于main
,但这也不对,因为它将使main困惑。我使用JUnit 4.11和Gradle(如果对任何人都重要)。
问题:
什么是“测试帮助程序类”的最佳实践,即文件结构?
最佳答案
将类放入项目的测试部分是正确的。
唯一可能对您有所帮助的事情:如果NiceTestUtil
仅用于myPackage
中的测试,则可以将该类移至该程序包。
如果其他软件包的测试可以使用它,我认为您将不得不忍受这种不对称:-)
没有什么不好的。以生产级别->测试级别的方式具有对称性是一个好习惯。但这并不一定适用于其他方向的测试类->生产类。
我想到的最后一件事是:如果可以在项目中使用NiceTestUtil
,则可以为其创建单独的工件(项目)并将其用作测试作用域的依赖项。这将消除不对称性,但会花费两个项目的维护成本(但将来会消除可能的NiceTestUtil
代码重复性)。
关于java - JUnit文件结构,最佳实践(帮助程序类的放置),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32840670/