В этом уроке мы научимся писать более сложные тесты с помощью 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”