在单元测试中使用反射测试注释的存在是否被视为良好实践?

Ash*_*yan 5 java reflection testng unit-testing annotations

(这篇文章解释了为什么我想要这样做:单元测试的好模式形成在Spring MVC中具有基于注释的验证的bean)

编写单元测试以仅测试字段或类的配置/注释是否是一种良好的做法?例如,如果你有:

@AnnotatedClass
public class MyClass {

@AnnotatedField1
@AnnotatedField2
private string myField;

}
Run Code Online (Sandbox Code Playgroud)

编写单元测试是否有任何意义,可以检查上面是否存在注释?

Boh*_*ian 5

基本答案是"是的 - 检查单元测试中的注释是否正常"

总是问自己"我在测试什么".单元测试在类/方法级别测试"代码是否正确".

你并没有真正"测试"代码,但是你断言编码器已经正确地注释了某些字段,在你的情况下是断言"代码是正确的"的一部分,所以"是" - 我认为"测试"是可以接受的这个.

另一个选择是使这个断言成为你构建的代码样式检查阶段的一部分(如果你这样做) - 你必须编写一个自定义代码样式来做它,但我觉得这将是一个更合适的地方检查一下.但是,设置可能有点痛苦,所以只需将其作为单元测试即可.