Java8 kullanıyorum ve atılan özel durumun geçerli bir tür olduğunu doğrulayacak bir test yardımcısı yazmaya çalışıyorum.Yöntem bağımsız değişkenler için geçerli değil İstisna türü silme sorunu var mı?
assertThat(e, Matchers.isA(exceptionClass));
ama bu kötü kokan: Ben yapmak istiyorum ne
private static <E extends Exception> void expectThrow(Callable<Void> callable, Class<E> exceptionClass) {
try {
callable.call();
} catch (Exception e) {
assertTrue(exceptionClass.isInstance(e));
}
}
Ben hatalarından daha yararlı bilgi almak böylece hamcrest eşleştirici catch bloğunu değiştirin: İşte çalışan bir başlangıç sürümü t derleme - Bu güzel hatayı alıyorum: The method assertThat(T, Matcher<? super T>) in the type Assert is not applicable for the arguments (Exception, Matcher<E>)
Bu bulmaca bana - Bu işe yaramaz mı?
Integer a = 3;
assertThat(a, Matchers.isA(Number.class));
biraz uğraşırken sonra aşağıdakiler de çalışır:
assertThat((E)e, Matchers.isA(exceptionClass));
bu beni E'ye Exception kaynağından bir yardımcı "kontrolsüz döküm verir rağmen bu mükemmel çalışıyor şu durumda, benzer görünüyor "güvenlik uyarısı yazın. Biliyorum catch (E e)
- tür silme ve tüm ...
Neler oluyor? Test yardımcımı güzel bir şekilde güvenli bir şekilde nasıl güncelleyebilirim?
Daaaang'ı kullanmanız gerekecek. – Krease