注釈が getter メソッドから削除されたときにテストが失敗し、クラスの仕様が変更されたことを警告するように、クラスの仕様をテストしたかったのです。
class SomeBean{
@XMLElement(name = "name")
public String getName(){
return name;
}
}
class SomeBeanUnitTest{
@Test
public void test_getNameMustHaveAnnotation(){
Method getNameMethod = SomeBean.class.getDeclaredMethod("getName", new Class<?>[]{});
assertNotNull(getNameMethod.getAnnotation(XmlElement.class));
}
}
宣言されたアノテーションのメソッドをテストすることは、クラスの仕様をチェックする適切な方法ですか? これにより、テストがより脆弱になりますが、注釈が getter メソッドから削除されたという適切なフィードバックが提供されます。そのようなテストを書くことは賢明ですか?
この状態は統合テストでもカバーされていますが、統合によって提供されるフィードバックは問題を指摘しません。