在 JavaDoc 中包含指向(单元)测试类的链接

ker*_*000 6 java junit unit-testing javadoc

在类的 JavaDoc 中包含指向(单元)测试类的链接是还是应该是好的做法?

到目前为止我还没有看到这一点,但发现它在类和测试类之间跳转时非常有帮助。我还认为测试用例为类的使用提供了很好的例子。

反对在 JavaDoc 中链接测试用例的论点是什么?

Gho*_*ica 6

绝对不是好的做法。

原因很简单:生产代码的责任在于它的“生产工作”。生产代码负责提供有关您的测试设置的信息!有时,使用一个受包保护的方法来检查对象的内部状态是很实用的,这样可以使单元测试更容易。但这是为了让测试变得更容易/可能而做的。意思是:这样的事情是可以接受的(在不过分的情况下)——但这个想法却不是。

即使您忽略了这一点:“标准”实践是将单元测试放在不同的、单独的包中。因此,您有两个prod具有类/包“xyZ”和test“xyZTest”的项目。并且:当然应该test存在从到 的依赖关系prod,而不是另一个方向的依赖关系。javadoc 中的“真正的链接”(如{@link SomeClass})将要求您具有这样的依赖关系。您无法链接到项目设置中编译器无法解析的类!

除此之外:如果您遵循上述建议的项目布局,那么您总是知道:“如果有 Z 类测试 - 那么该测试应命名为 ZTest”。任何好的想法都能找到 ZTest 为您服务。

换句话说:当我想在 Eclipse 中查看某个类的测试时,我只需双击该类名称(以选择该名称);然后我按“ctrl-shift-t”(打开类型)...并且 eclipse 向我展示了两个类:Z 和 ZTest。

长话短说:不要用不属于生产代码的信息污染生产代码,而是确保您遵循标准程序并拥有可以为您解决此类问题的工具。干净的代码很重要的原因是:人们必须理解源代码中的每一行都代表成本。必须修复错误或增强功能的人必须阅读该行(可能非常频繁)。因此:任何不支持类的核心职责的东西都不应该存在。