Я использую mockito в тесте junit. Как сделать исключение, а затем подтвердить, что оно имеет (общий псевдокод)
java
exception-handling
junit
mockito
переполнение стека
источник
источник
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Сначала отвечу на ваш второй вопрос. Если вы используете JUnit 4, вы можете аннотировать свой тест с помощью
чтобы утверждать, что произошло исключение. А чтобы "издеваться" над исключением с помощью mockito, используйте
источник
Если вы хотите проверить сообщение об исключении, вы можете использовать JUnit ExpectedException с Mockito:
источник
given()
откуда это взялось?Обновленный ответ от 19.06.2015 (если вы используете java 8)
Просто используйте assertj
Использование assertj-core-3.0.0 + Java 8 Lambdas
Ссылка: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
источник
Если вы используете JUnit 4 и Mockito 1.10.x, аннотируйте свой метод тестирования с помощью:
и выбросить желаемое использование исключения:
источник
Сделайте исключение таким:
Убедитесь, что это произошло, либо заявив, что ваш тест выдаст такое исключение:
Или с помощью обычной имитационной проверки:
Последний вариант необходим, если ваш тест предназначен для доказательства того, что промежуточный код обрабатывает исключение (т.е. исключение не будет выброшено из вашего метода тестирования).
источник
verify
Утверждает ли вызов исключение?when
предложение верное, оно должно было вызвать исключение.Используйте doThrow от Mockito, а затем поймайте нужное исключение, чтобы утверждать, что оно было сгенерировано позже.
источник
Используя mockito, вы можете сделать исключение.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
Используя Junit5, вы можете утверждать исключение, проверять, выбрасывается ли это исключение при вызове метода тестирования .
Пример можно найти здесь: assert exception junit
источник
Вне зависимости от mockito, исключение можно поймать и подтвердить его свойства. Чтобы убедиться, что исключение действительно произошло, установите ложное условие в блоке try после оператора, который вызывает исключение.
источник
Или если ваше исключение выброшено из конструктора класса:
источник
Утверждение по сообщению об исключении:
источник