既定标准
我整理了我的代码,以便我的test
- 文件夹与我的main
- 文件夹具有相同的包。我的测试类与我的类名称相同,但附加了 Test 。
到目前为止一切顺利。
问题
我发现自己在我的util
文件夹中创建了一个test
- 包,在我的项目中。在那里我保留了一些项目特定的“测试辅助类”。
src
│
└───main
│
├───java
│ │
│ ├─── myPackage
│ MyClass.java
│ AnotherClass.java
│
├───test
│
├─── myPackage
│ MyClassTest.java
│ AnotherClassTest.java
│
├─── util
NiceTestUtil.java
“问题”是我讨厌不对称。 util
中的test
- 包,感觉它应该在util
中测试相应的main
- 包。相反,它包含我的助手类。
我一直在想util
包可能属于main
,但这也感觉不对,因为它会使主要混乱。
我使用JUnit 4.11和Gradle(如果对任何人都重要)。
问题:
“测试助手类”的最佳实践,文件结构是什么?
答案 0 :(得分:5)
将课程放入项目的测试部分是正确的。
唯一可以帮助您的方法:如果java.util.Optional stringToUse = java.util.Optional.of(childPage.getContentResource().getValueMap().get("jcr:description").toString());
stringToUse.ifPresent(description = stringToUse);
仅用于NiceTestUtil
中的测试,则可以将该类移至该包中。
如果它可以被其他软件包的测试使用,我认为你将不得不忍受这种不对称:-)
没有什么不好的。以生产类 - >的方式具有对称性是一种很好的做法。考试班。但它并不一定适用于其他方向测试类 - >生产课。
我想到的最后一件事是:如果您的myPackage
可以跨项目使用,您可以为它创建一个单独的工件(项目)并将其用作测试范围的依赖项。这将消除不对称性,但是为了维护两个项目的成本(但在将来删除可能的NiceTestUtil
代码重复性)。
答案 1 :(得分:2)
我在测试部分中组织类的规则与主要部分相同:始终最小化其可见性: