Есть метод
public ResponseEntity<?> deleteMessage(@PathVariable Long id) {
if (!messageService.delete(id)) {
throw new DataNotFoundException("Data with id=" + id + " not found.");
}
return new ResponseEntity<>(HttpStatus.OK);
}
И тест к нему
@Test
public void deleteMessageIfNotFoundThenException() {
//prepare
when(messageController.deleteMessage(2L)).thenThrow(DataNotFoundException.class);
//testing
ResponseEntity<?> failedDelete = messageController.deleteMessage(2L);
//validate
verify(messageController).deleteMessage(2L);
}
Ну пойму как правильно проверять, тест не проходит.
И DataNotFoundException
public class DataNotFoundException extends RuntimeException {
public DataNotFoundException(String message) {
super(message);
}
}
Вы можете указать ожидаемое исключение в аннотации теста
@Test(expected = DataNotFoundException.class)
public void deleteMessageIfNotFoundThenException() {
//prepare
when(messageController.deleteMessage(2L)).thenThrow(DataNotFoundException.class);
//testing
ResponseEntity<?> failedDelete = messageController.deleteMessage(2L);
}
Если вы хотите сохранить BDD-стиль теста, можете воспользоваться библиотекой catch-exception. Код будет примерно такой:
verifyException(messageController, IndexOutOfBoundsException.class).deleteMessage(2L);
или такой, если вы хотите проверить дополнительно свойства исключения.
when(messageController).deleteMessage(2L);
then(caughtException())
.isInstanceOf(DataNotFoundException.class)
.hasMessageContaining("your message here");
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте,у меня возник вопрос почему не работает регистрация нового пользователя? Пишу на java использую spring boot и thymeleafЗаранее большое...
Как cгенерировать KeyEvent для двух кнопок ? То есть чтоб сгенерировалась комбинация двух кнопок, например Alt и G
Доброго времени суток, мне нужно задать путь к файлу в метод decryptFile и encryptFileЧуть раньше я вывел путь к файлу в TextView с помощью метода getRealPathFromURI
У компонента EditText требуется сделать следующую маску для ввода: градусы, минуты, секунды