PODAMを使用して、いくつかの JUnit テスト ケース内のいくつかのテスト データをオブジェクトに入力しています。意味をなさないエラーに遭遇しました。
PODAM は、オブジェクトの製造時に次のログ行を報告します。
セッター: setId にアクセスできません。アクセス可能に設定します。ただし、これはセキュリティ ハックであり、コードは実際には Javabean 標準に準拠している必要があります。
オブジェクトを設定しようとしているときに、すべてのセッターに対してこの警告が表示されます。この場合、setId() は次のもので構成されます。
public void setId( int id )
{
this.id = id;
}
メソッドが公開されているため、このエラーにフラグが立てられる理由を知っている人はいますか?なぜ「アクセスできない」というフラグが立てられるのですか?
PODAM ソースを調べたところ、メソッドがアクセス可能かどうかがチェックされ、false が返されるたびに、PODAM は呼び出し前にメソッドをアクセス可能に設定します。
if (!setter.isAccessible()) {
LOG.warn("The setter: {} is not accessible.Setting it to accessible. "
+ "However this is a security hack and your code should really adhere to Javabean standards.",
setter.getName());
setter.setAccessible(true);
}
setter.invoke(retValue, setterArg);
PODAM は実際にうまく機能しており、すべてのフィールドにランダムなデータが入力されています。毎回このエラーが発生する理由と、コード内に標準に準拠していない原因となる問題があるかどうかについて、私はただ興味があります。