Рубрики
Без рубрики

ява.ланг.Исключение заглушки ArrayIndexOutOfBoundsException Mockito – JUnit, TestNG

Исключение заглушки Mockito, пример Mockito, когда затем, пример Mockito, исключение Mockito с фреймворками тестирования JUnit и TestNG, пример кода исключения Mockito.

Автор оригинала: Pankaj Kumar.

Иногда наши методы создают исключения, и мы хотим поиздеваться над объектом и проверить исключения. Мы можем использовать макетные объекты Mockito с когда() и затем бросить () , чтобы поиздеваться над этим сценарием.

Исключение заглушки Mockito – JUnit 5

Давайте рассмотрим простой пример, в котором мы будем издеваться над нашим методом объекта, чтобы создать исключение. Тогда мы будем использовать JUnit 5 assertThrows для проверки исключения и его сообщения.

package com.journaldev.mockito.examples;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.List;

import org.junit.jupiter.api.Test;

class JUnitMockitoStubExceptions {

	@SuppressWarnings("unchecked")
	@Test
	void test() {
		List list = mock(List.class);
		when(list.size()).thenThrow(new RuntimeException("size() method not supported"));

		Exception exception = assertThrows(RuntimeException.class, () -> list.size());
		assertEquals("size() method not supported", exception.getMessage());
	}
}

Для простоты я издеваюсь над интерфейсом списка. Аналогично, мы можем издеваться и над любым другим объектом и указывать его поведение, чтобы создавать исключение при вызове определенного метода.

Исключение заглушки Mockito – TestNG

Если вы используете TestNG фреймворк, то мы можем использовать assert/| утверждение.

@Test
void test() {
	List list = mock(List.class);
	when(list.size()).thenThrow(new RuntimeException("size() method not supported"));

	assertThrows(RuntimeException.class, () -> list.size());
}

Если мы также хотим проверить сообщение об исключении, мы можем использовать аннотацию @Test expectedexception и expectedExceptionsMessageRegExp атрибуты.

@Test(expectedExceptions = RuntimeException.class, expectedExceptionsMessageRegExp = "size method not supported")
void test1() {
	List list = mock(List.class);
	when(list.size()).thenThrow(new RuntimeException("size method not supported"));
	list.size();
}