@Kentaro23

Как покрыть тестом try/catch при помощи JUNIT4?

Добрый день! Idea подсвечивает этот кусок как не покрытый тестом
} catch (Throwable e) {
                        System.out.println("An exception has occurred while trying to get logger. Stack trace: "
                                        + ExceptionUtils.getStackTrace(e));
                    }
Тест сделал но idea всё равно показывает его как не покрытым тестом вот кусок теста, просьба помочь может я не правильно делаю
Assert.fail("An exception has occurred while trying to get logger. Stack trace: ");

        } catch (Throwable e) {
            assertTrue(e instanceof Throwable);
            System.out.println("An exception has occurred while trying to get logger. Stack trace: "
                    + ExceptionUtils.getStackTrace(e));
            Assert.assertNotEquals("", "An exception has occurred while trying to get logger. Stack trace: "
                    + ExceptionUtils.getStackTrace(e));

        }
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
@aol-nnov
мусье документацию на жэ-юнит четыре читали?

https://junit.org/junit4/faq.html#atests_7

@Test(expected = MyMegaException.class)
public void testIfItBroke() {
    MyClass mega;
    mega.methodThatThrows(wrong params);
}


и, да, я бы использовал что-то более специфичное, чем Throwable.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
driversti
@driversti
Кратко о себе
Стесняюсь спросить: зачем тестировать данный блок кода? Ради 100% или чтобы Идея не подсвечивала?
Бытует мнение, что тестировать нужно бизнес логику и скользкие моменты в частности.
Более того, ошибка вашего примера теста в том, что
ExceptionUtils.getStackTrace(e)
в коде и тесте скорее всего будут разные, поэтому тест не выполниться. Это на будущее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы