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

Предположения JUnit

Предположения JUnit, класс предположений JUnit Jupiter, предположение JUnit Истинно, предположение JUnit Ложно, предположение JUnit, что пример кода, предположение JUnit 5, предположение против утверждения

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

Предположения JUnit помогают нам пропустить тест для определенного сценария. Иногда наши тестовые примеры зависят от входных данных, операционных систем или любых сторонних данных. Если наш тест не написан для каких-то конкретных входных данных, мы можем использовать предположения, чтобы пропустить наш метод тестирования.

Предположения JUnit

Класс предположений JUnit Jupiter предоставляет полезную коллекцию методов предположений. Это хорошая идея-импортировать их в наш тестовый класс и написать свободный код.

import static org.junit.jupiter.api.Assumptions.*;

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

@ParameterizedTest
@ValueSource(ints = {1,2,3,-1})
void test(int i) {
	try {
		Thread.sleep(i);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}

Для простоты я использую ValueSource , но у нас может быть сторонний метод для подачи входных тестовых данных. Если мы запустим вышеуказанный тест, один из тестов завершится неудачей.

Предположим()

Мы можем использовать assumeTrue (), чтобы пропустить тест, если входное число отрицательное. Ниже приведен обновленный код:

@ParameterizedTest
@ValueSource(ints = {1,2,3,-1})
void test(int i) {
	assumeTrue(i >=0);
	// assumeTrue(i >=0, "Wrong Input, Only positive ints please");
	try {
		Thread.sleep(i);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}

Теперь, когда мы запускаем тест, JUnit пропускает, когда входное число отрицательное.

предположим, что False()

Мы можем использовать assumeFalse() для проверки того, что условие возвращает значение false. Допустим, у нас есть метод тестирования, который мы не хотим запускать с пользователем “root”. Мы можем использовать assumeFalse (), чтобы пропустить тест, в данном случае используя системную переменную среды.

@Test
void test_assumeFalse() {
	assumeFalse("root".equals(System.getenv("USER")));
	//code that I don't want to run as root user
}

предполагая, Что()

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

@Test
void test_assumingThat() {
	assumingThat("pankaj".equals(System.getenv("USER")), 
        () -> {System.out.println("USER is pankaj, continue further");});
}

JUnit предполагает против утверждения

JUnit assert используется для написания сценариев тестирования для наших методов тестирования. В то время как предположение используется для проверки благоприятных условий для наших тестовых случаев.

Если утверждение JUnit не выполняется, тест завершается неудачно. Если предположения junit не выполняются, метод тестирования пропускается.

Это все для краткого обзора предположений о Юпитере Юпитера.