私はJUnit
を使用してテストケースを作成しています。テスト対象メソッドはプライベートコンストラクタをパラメータとして持つ最終クラスをとります。 new
のキーワードでインスタンス化できないため、Mockito
を試してみましたが、Mockito
はfinal class
が嫌いです。私はPowerMockito
を使用しましたが、それは私には妥当だと思われましたが、PowerMockito.mockStatic(Field.class);
はvoidメソッドであり、メソッドを呼び出すときに引数として渡すことができるように、Field
の参照が必要です。Java/Mockito/PowerMockitoを使用してプライベートコンストラクタでクラスをインスタンス化
私はIllegalArgumentException
をキャッチしたいが、最初に私はどのように確認していないテスト
public boolean accept(Field field) {
if(ignoreNulls) {
try {
if(field.get(super.getObject()) == null) {
return false;
}
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}
}
return super.accept(field);
}
JUnitテストケース
@Test(expected=IllegalArgumentException.class)
public void testAccept() throws Exception {
DefaultToStringBuilder builder = new DefaultToStringBuilder(new Object());
PowerMockito.mockStatic(Field.class);
builder.accept(?);
}
下の引数
方法としてField
の参照を渡す必要があります私はこれをしなければなりません。事前
あなたは既にhttp://stackoverflow.com/questions/2599440/how-can-i-access-a-private-constructor-of-a-classをチェックしましたか? – EagleRainbow