2011-12-20 36 views
13

Belirli bir Özel Durumun atılıp atılmadığını test edebilir miyim?Belirli bir özel durumun atılmadığını nasıl test edebilirim?

Diğer yoldan @Test[expect=MyException]'u kullanmak kolaydır.

Ancak bunu nasıl reddedebilirim? Belirli İstisna diğer istisnalar atılmış edilebilecek bir durum atılmış değil olup olmadığını test etmek isterseniz

+0

Bu test edecek atmak için bekliyoruz eğer. İstisna atılmadığında başarısız olur. Yani zaten istediğini yapar (?) – oers

+0

Lütfen sorunuzun açıklamasını yapın. – nowaq

+1

Başlığınız (hem düzenlemeden önce ve sonra) sorunuzun metniyle çelişir. Özellikle ne yapmaya çalışıyorsun? –

cevap

17

, şunu deneyin:

try { 
    myMethod(); 
} 
catch (ExceptionNotToThrow entt){ 
    fail("WHOOPS! Threw ExceptionNotToThrow" + entt.toString); 
} 
catch (Throwable t){ 
    //do nothing since other exceptions are OK 
} 
assertTrue(somethingElse); 
//done! 
0

aşağıdaki kullanarak assertj

yapabilirsiniz

Eğer istisna ardından

Throwable throwable = catchThrowable(() -> sut.method()); 

assertThat(throwable).isNull(); 

atılır değilse kontrol etmek istiyorsanız veya istisnası atılır,

Throwable throwable = catchThrowable(() -> sut.method()); 

assertThat(throwable).isInstanceOf(ClassOfExecption.class) 
        .hasMessageContaining("expected message"); 
İlgili konular