例外にアサートするJUnitテストを書いてみたいと思います。私の場合、私の期待はDataAccessExceptionをキャッチしています。しかし、DataAccessExceptionは抽象クラスであり、私のコードはDataAccessExceptionから拡張された具象クラスをスローする可能性があります。EasyMock:階層内の任意のクラスをアサートする例外
これはJUnitのルール使用して、私のコードです:あなたが知っているように
@Rule
public final ExpectedException exception = ExpectedException.none();
@Test
public void testDelete_fail() {
EasyMock.expect(testSubject.delete(EasyMock.anyObject()))
.andThrow(new DataAccessException("..."));
exception.expect(DataAccessException.class);
testSubject.delete(id);
}
を、私は抽象クラスの新しいインスタンスを作成することはできません。つまり、私はandThrowメソッドの引数を埋めることはできません。
AssertionError: Expected test to throw an instance of org.springframework.dao.DataAccessException
任意のアイデア?私はEasyMockを使用して何かを好むだろう:私は1つがDataAccessExceptionから延びはDuplicateKeyException、でビルドしようとすると、私はエラーを得ました。おかげ
こんにちは、私はEasyMock.createNiceMock(DataAccessException.class)を使ってみましたが、別のエラー(NoSuchMethodError:org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object; Lorg/hamcrest/Description;))がありました。私の問題が一時的に修正された方法は、新しいインスタンスDataIntegrityViolationExceptionを作成することでした。私の重要な問題は、EasyMock.replayを呼び出すのを忘れたことでした。ところで、あなたの答えをありがとう – jmgoyesc