Поиск по сайту:

JUnit Assert Exception — JUnit 5 и JUnit 4


Мы можем протестировать ожидаемые исключения, используя метод утверждения JUnit, который возвращает выброшенное исключение, поэтому мы также можем использовать его для утверждения сообщения об исключении.

JUnit утверждает исключение

Вот простой пример, показывающий, как утверждать исключение в JUnit 5.

String str = null;
assertThrows(NullPointerException.class, () -> str.length());

JUnit 5 утверждает сообщение об исключении

Допустим, у нас есть класс, определенный как:

class Foo {
	void foo() throws Exception {
		throw new Exception("Exception Message");
	}
}

Давайте посмотрим, как мы можем протестировать исключение, а также его сообщение.

Foo foo = new Foo();
Exception exception = assertThrows(Exception.class, () -> foo.foo());
assertEquals("Exception Message", exception.getMessage());

Ожидаемое исключение JUnit 4

Мы можем использовать атрибут expected аннотации JUnit 4 @Test, чтобы определить ожидаемое исключение, выдаваемое тестовым методом.

@Test(expected = Exception.class)
public void test() throws Exception {
	Foo foo = new Foo();
	foo.foo();
}

JUnit 4 утверждает сообщение об исключении

Если мы хотим проверить сообщение об исключении, нам придется использовать правило ExpectedException. Ниже приведен полный пример, показывающий, как проверить исключение, а также сообщение об исключении.

package com.journaldev.junit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class JUnit4TestException {

	@Rule
	public ExpectedException thrown = ExpectedException.none();

	@Test
	public void test1() throws Exception {
		Foo foo = new Foo();
		thrown.expect(Exception.class);
		thrown.expectMessage("Exception Message");
		foo.foo();
	}
}

Это все, что нужно для быстрого обзора ожидаемых исключений в JUnit 5 и JUnit 4.

Вы можете ознакомиться с другими примерами JUnit 5 в нашем проекте GitHub Repository.