Как избавиться от ошибки времени компиляции (несмотря на использование импорта) для assertThrows? (Java, Eclipse Oxygen)

Я тестирую следующий фрагмент кода, который нашел здесь.

Версия Eclipse Oxygen: версия Oxygen.2 (4.7.2) - если это имеет значение

import org.junit.jupiter.api.Assertions;
....
@Test
void exceptionTesting() {
    Executable closureContainingCodeToTest = () -> {throw new IllegalArgumentException("a message");};
    Assertions.assertThrows(IllegalArgumentException.class, closureContainingCodeToTest, "a message");
}

Однако код не компилируется.

Я получаю ошибку ниже:

Метод assertThrows(Class, Executable, String) в типе Assertions не применим для аргументов (Class, Executable, String) DbHandlerTest.java line 96 Проблема с Java

Конечно, моя цель - не просто протестировать приведенный выше фрагмент кода, а написать тест для моего кода. Пожалуйста помоги.

1 ответ

Решение

Я разобрался с проблемой... Спасибо Sormuras за правильный вопрос. Следующий импорт был неверным

import org.junit.jupiter.api.Executable;

Должно было быть так:

import org.junit.jupiter.api.function.Executable;
Другие вопросы по тегам