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

JUnit 5 – Повторные и условные тесты

В этом уроке мы научимся писать более сложные тесты с помощью JUnit. 🙂 … С пометкой java, тестирование, учебное пособие, новички.

В этом уроке мы научимся писать более сложные тесты с помощью JUnit. 🙂

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

import org.junit.jupiter.api.*;
public class TestManageEmployees {
@DisplayName("Checks the Repeated Tests")
    @RepeatedTest(value = 5, name = "Repeating {currentRepetition} of {totalRepetitions}")
    public void TestRepeatedTest() {
        System.out.println("This is a repetition test");
    }
}

Как вы можете видеть, мы дали два аргумента @RepeatedTest ,

  • значение: это указывает количество раз, которое вы хотите запустить тест.
  • имя: это имя, которое вы можете присвоить для идентификации каждого теста на каждой итерации. > > текущее повторение и общее количество повторений

Когда вы запускаете тест, вы получаете следующий результат;

Слева от терминала вы можете увидеть уникальное имя каждой итерации, а справа вы можете увидеть инструкцию print, которую мы дали, напечатанную 5 раз, как мы и ожидали. Да, я знаю, что это немного глупый пример для теста, но, насколько вы понимаете концепцию, я доволен этим 😉

У вас могут быть случаи, когда вы хотите запускать тесты условно. Например, вы можете захотеть, чтобы конкретный тестовый пример выполнялся в определенной операционной системе. Для этого JUnit предоставил нам две аннотации,

  • @@Включено
  • @@Отключен

Давайте посмотрим на их использование.

@@Enabledno

Аннотация @EnabledOnOs используется, когда вы хотите запустить метод тестирования в определенной операционной системе. Проверьте следующий код.

import org.junit.jupiter.api.condition.EnabledOnOs;
public class TestManageEmployees {
    @Test
    @DisplayName("Should Be Enabled Only On MAC OS")
    @EnabledOnOs(value = OS.MAC, disabledReason = "Test is only enabled on MAC OS")
    public void TestEnabledOnOS() {
        System.out.println("Tests EnabledOnOs annotation");
    }
}

Как вы можете видеть @EnabledOnOs принимает два аргумента.

  • значение: операционная система, в которой вы хотите запустить метод тестирования.
  • disabledReason: это строка, которая отображается в терминале других операционных систем, где метод тестирования не выполняется.

Поскольку я использую Windows, этот тест не запускается на моем компьютере. Следовательно, мой вывод выглядит следующим образом,

@@Отключен

Аннотация @Disabled противоположна. Он используется, когда у вас есть метод тестирования, который вы не хотите запускать в определенной операционной системе.

import org.junit.jupiter.api.condition.DisabledOnOs;
public class TestManageEmployees {
    @Test
    @DisplayName("Should Be Disabled On Windows")
    @DisabledOnOs(value = OS.WINDOWS, disabledReason = "Test is disabled on Windows")
    public void TestDisabledOnOS() {
        System.out.println("Tests DisabledOnOs annotation");
    }
}

@@Disabled аннотация также принимает те же два аргумента,

  • значение: операционная система, в которой вы НЕ хотите запускать тест.
  • disabledReason: это строка, которая отображается в терминале других операционных систем, которые вы указали в разделе value . Приведенный выше тест дал мне результат,

На этом мы можем завершить учебное пособие по повторяемым и условным тестам. Хотите знать, как передавать параметры в методы тестирования? Ознакомьтесь со следующим руководством – JUnit 5 – Параметризованные тесты 😋

Оригинал: “https://dev.to/chathurashmini/junit-5-repeated-conditional-tests-18n0”