Testuję metodę z oczekiwanym wyjątkiem. Muszę również sprawdzić, czy po wywołaniu wyjątku został wywołany kod czyszczenia (na wyśmiewanym obiekcie), ale wygląda na to, że weryfikacja jest ignorowana. Oto kod. Korzystam z Junit ExpectedException
Rule
, aby zweryfikować oczekiwany wyjątek.Mockito sprawdź po wyjątku Junit 4.10
@Rule
public ExpectedException expectedEx = ExpectedException.none();
@Test
public void testExpectedException()
{
MockedObject mockObj = mock(MockedObj.class);
MySubject subject = new MySubject(mockedObj);
expectedEx.expect(MyException.class);
expectedEx.expectMessage("My exception message.");
subject.someMethodThrowingException();
verify(mockObj).
someCleanup(eq(...));
}
Wydaje się, że verify
jest całkowicie ignorowany. Bez względu na to, jaką metodę wstawiłem do verify
, mój test mija, co nie jest tym, czego chcę.
Każdy pomysł, dlaczego tak się dzieje?
Sprawdź mój punkt środkowy ... Myślę, że będzie działać, ale byłoby przełknąć wiadomość ExpectedException. Dzięki za komplement! –
Nieodebrane - prawdopodobnie prawo. –
Wreszcie działa dobrze dla mnie - wykonuje weryfikację i wciąż wykrywa oczekiwany wyjątek, a jego komunikat –