Używam mockito w teście junit. Jak zrobić wyjątek, a następnie potwierdzić, że ma (ogólny pseudokod)
java
exception-handling
junit
mockito
przepełnienie stosu
źródło
źródło
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Najpierw odpowiedz na twoje drugie pytanie. Jeśli używasz JUnit 4, możesz oznaczyć swój test adnotacją
aby potwierdzić, że wystąpił wyjątek. Aby „wyszydzić” wyjątek z mockito, użyj
źródło
Jeśli chcesz również przetestować komunikat o wyjątku, możesz użyć ExpectedException JUnit z Mockito:
źródło
given()
Skąd to pochodzi?Zaktualizowana odpowiedź na 19.06.2015 (jeśli używasz java 8)
Po prostu użyj assertj
Korzystanie z assertj-core-3.0.0 + Java 8 Lambdas
Źródła: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
źródło
Jeśli używasz JUnit 4 i Mockito 1.10.x Opisz swoją metodę testową:
i aby rzucić żądane użycie wyjątku:
źródło
Zrób wyjątek w ten sposób:
Sprawdź, czy to się stało, albo potwierdzając, że Twój test zgłosi taki wyjątek:
Lub przez normalną weryfikację próbną:
Ta ostatnia opcja jest wymagana, jeśli test ma na celu udowodnienie, że kod pośredni obsługuje wyjątek (tj. Wyjątek nie zostanie wyrzucony z metody testowej).
źródło
verify
wywołanie stwierdza wyjątek?when
klauzula jest poprawna, musiała zgłosić wyjątek.Użyj doThrow Mockito, a następnie złap żądany wyjątek, aby potwierdzić, że został wyrzucony później.
źródło
Używając mockito, możesz zrobić wyjątek.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
Korzystając z Junit5, możesz potwierdzić wyjątek, sprawdzić , czy ten wyjątek jest generowany podczas wywoływania metody testing .
Znajdź przykład tutaj: assert wyjątek junit
źródło
W przeciwieństwie do mockito, można wychwycić wyjątek i potwierdzić jego właściwości. Aby sprawdzić, czy wyjątek się wydarzył, potwierdź fałszywy warunek w bloku try po instrukcji, która zgłasza wyjątek.
źródło
Lub jeśli twój wyjątek jest wyrzucany z konstruktora klasy:
źródło
Potwierdź przez komunikat wyjątku:
źródło