wsdl から生成された Pojo クラスをテストしてコード カバレッジを改善しようとしていますが、解決方法がわからない問題に直面しています。
生成されたクラスは次のようになります。
public class NOF implements java.io.Serializable {
private java.lang.String nOFName;
public java.lang.String getNOFName() {
return this.nOFName;
}
public void setNOFName(java.lang.String nOFName) {
this.nOFName = nOFName;
}
}
Pojo Validator が変数名nOFName
を getter に正しく変換せずgetNOFName
、代わりに何か他のものを探しているようです (私にはわかりません)。私が得る例外はこれです:
java.lang.AssertionError: [PojoFieldImpl [field=private java.lang.String
mypackage.NOF.nOFName, fieldGetter=null, fieldSetter=null]] is missing a getter
変数の名前を に変更するNOFName
と、テストに合格します。nofName
に変更し、メソッドの名前を に変更しても機能しgetNofName
ます。略語で作られた名前に問題があることはわかっていますが、生成されたクラスは将来再生成される可能性があるため、変更したくありません。カスタムバリデータを書く必要はありますか? somoene は以前にこの問題に対処したに違いないと思います (これは、openpojo 検証の完璧なユースケースだと考えているためです) が、何も見つかりませんでした。
テストは次のようになります。
public class PojoTest {
@Test
public void testPojo() throws Exception{
PojoValidator validator = new PojoValidator();
validator.addRule(new GetterMustExistRule());
validator.addRule(new SetterMustExistRule());
validator.addTester(new GetterTester());
validator.addTester(new SetterTester());
for (PojoClass cls: PojoClassFactory.getPojoClasses("mypackage")){
validator.runValidation(cls);
}
}
}
編集
私はopenpojoライブラリをデバッグしましたが、それは検索されgetnOFName
、ライブラリを修正して再コンパイルする以外にできることはありません:(