在 JavaDoc 中包含 link 到(单元)测试 类

Include link to (unit) test classes in JavaDoc

在 class 的 JavaDoc 中包含指向(单元)测试 classes 的链接是好习惯吗?

到目前为止我还没有看到这个,但发现它在 class 和测试 class(es) 之间跳转时非常有用。我还认为测试用例为 class.

的用法提供了很好的示例

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

绝对不是好的做法。

出于一个简单的原因:生产代码对其 "production job" 负责。生产代码负责提供有关您的测试设置的信息!有时 实用 周围有一个包保护的方法,它允许您 检查对象的内部状态 - 使单元测试更容易。但这是你做测试 easier/possible 的事情。意思是:这样的事情是可以接受的(在不过分的情况下)——但这个想法不是。

即使您忽略了这一点:"standard" 做法是将您的单元测试放在一个不同的、单独的 包中。因此,您有两个项目 prod 和 class/package "x.y.Z",以及 test 和 "x.y.ZTest"。并且:当然应该有只有testprod的依赖 - 但没有 在另一个方向。而 javadoc 中的 "true linking"(如 {@link SomeClass})将要求您具有这样的依赖性。您不能 link 到编译器无法在您的项目设置中解析的 class!

除此之外:如果您遵循上述推荐的项目布局,那么您总是知道:"if there is a test for class Z - then this test should be named ZTest"。任何不错的想法都会为您找到 ZTest。

换句话说:当我想在 eclipse 中查看 class 的测试时,我只需双击 class 名称(到 select 该名称);然后我按 "ctrl-shift-t"(打开类型)... eclipse 向我显示两个 classes:Z 和 ZTest。

长话短说:不要用不属于那里的信息污染您的生产代码 - 确保您遵循标准程序并手头有解决此类问题的 工具 问题给你。为什么 clean code 很重要:必须理解源代码中的 each 行代表 costs .必须修复错误或增强功能的人必须阅读该行(可能非常频繁)。因此:任何不支持 class 核心职责的东西都不应该存在。