Когда я пытаюсь проверить этот метод
static void validatePostcode(final String postcode, final String addressLine)
{
if(! hasValidPostcode(postcode, addressLine)) {
throw new InvalidFieldException("Postcode is null or empty ");
}
}
используя следующий тест
@Test
public void testThrowsAnException()
{
assertThatThrownBy(validatePostcode("", "")).isInstanceOf(InvalidFieldException.class);
}
Я получаю это сообщение об ошибке в IntelliJ
assertThatThrownBy (org.assertj.core.api.ThrowableAssert.ThrowingCallable) в утверждениях не может применяться к (пусто)
То же самое с assertThatExceptionOfType
.
Можно ли проверить, что статический метод действительно выдает непроверенное исключение, используя AssertJ? Что я должен изменить в своем тесте?
@Test(expected = RuntimeException.class)
, но хотел сделать то же самое, используя AssertJ. - person Cybex   schedule 08.08.2019@Test(expected = ...)
. В основном это похоже на обертывание всего тела метода в try/catch, поэтому тест проходит, если что-либо в тесте выдает это исключение, а не только то, что вы собираетесь тестировать. Таким образом, особенно для непроверенных исключений, ваш тест может показаться пройденным, даже если он не делает то, что вы думаете. - person Andy Turner   schedule 08.08.2019isInstanceOf
, напримерhasMessage
, см. assertj. github.io/doc/ - person Joel Costigliola   schedule 09.08.2019