Рекомендации Junit: Проверяю ли я состояние ошибки во время выполнения?

#java #exception #junit

Вопрос:

Допустим, у меня есть код, который выполняет некоторую работу с БД и имеет счастливый путь и единственный несчастливый поток, который возникает только при отключении подключения к БД, как это:

   public Report createReport(
      String reportType, Report reportData, ReportUser reportUser, Timestamp createTs) {
    KeyHolder reportIdHolder = new GeneratedKeyHolder();
    try {
      saveReportDetails(reportType, reportData, reportUser, createTs);
    } catch (DataAccessException e) { <-------------- This extends RuntimeException 
      log.error(
          "DataAccessException while trying to insert report with name {}",
          reportData.getReportName(),
          e);
      throw e;
    }
    ...
    // More of the happy path code here
  }
 

У меня есть тест на счастливый путь, но рекомендуется ли также проверять поток исключений во время выполнения?

Приложение является приложением SpringBoot Rest, поэтому оно не умирает, когда исключение повторяется после входа в систему.

Комментарии:

1. Да, вы должны проверить счастливый путь и других, если сможете.

2. Даже если это сбой был вызван неисправимой ошибкой? Я знаю, что в данном случае это неприменимо, но в принципе?

3. Да, вы должны проверить наличие ошибок, как восстанавливаемых, так и не восстанавливаемых.

4. Ваш объект должен сообщить пользователям о том, что произошла неисправимая ошибка. Чего вы ожидаете от них, если это произойдет? Ваш тест должен доказать, что вы выполнили свою часть контракта.