Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

Аннотацию JUnit 5 @Disabled можно использовать для исключения методов тестирования из набора тестов. Эта аннотация может применяться как к классу тестирования, так и к отдельным методам тестирования.

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

1. Аннотация @Disabled в классе теста

Когда @Disabled применяется к классу теста, все тестовые методы в этом классе также автоматически отключаются.

import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

@Disabled
public class AppTest {

    @Test
    void testOnDev()
    {
        System.setProperty("ENV", "DEV");
        Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")));
    }

    @Test
    void testOnProd()
    {
        System.setProperty("ENV", "PROD");
        Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")));
    }
}
JUnit 5 аннотация @Disabled в тестовом классе
JUnit 5 аннотация @Disabled в тестовом классе

Обратите внимание на количество прогонов: 2/2 (2 пропущено). Ясно, что оба теста отключены и не выполняются.

2. Аннотация @Disabled в методах тестирования

Аннотация @Disabled используется, чтобы сообщить о том, что аннотированный тестовый метод в настоящее время отключен и не должен выполняться.

import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

public class AppTest {

    @Disabled("Do not run in lower environment")
    @Test
    void testOnDev()
    {
        System.setProperty("ENV", "DEV");
        Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")));
    }

    @Test
    void testOnProd()
    {
        System.setProperty("ENV", "PROD");
        Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")));
    }
}
JUnit 5 аннотация @Disabled в методах тестирования
JUnit 5 аннотация @Disabled в методах тестирования

Хорошего изучения!!!

Скачать исходный код

Комментарии (3)


  1. grossws
    25.11.2021 00:42
    +2

    Вы по каждой аннотации отдельную статью планируете? Я понимаю что это перевод, но превращать хабр в твиттер (даже если автор оригинального набора туториалов делал их максимально короткими) -- это, имхо, перебор


    1. val6852 Автор
      25.11.2021 11:08

      Я уже не уверен, что перевод Туториала по JUnit 5 кому-то интересен.

      Причины минусов не понятны.

      Или просто нужно было объединить все аннотации в одну статью?


      1. grossws
        25.11.2021 16:06
        +1

        Или в небольшое количество. Про lifecycle annotations + per instance/per class вполне можно рассказать в одной статье (и то, мне кажется это уже было где-то во времена выхода junit5).

        Аналогично repeated и parameterized, test factory, dynamic tests тянут, как максимум, на одну статью. И эта тема, скорее всего, тоже плотно освещалась.

        Если этот поток статей ещё нормально смотрится личном блоге, на хабре он выглядит как поток спама. Что в свою очередь люди типа меня будут интерпретировать как откровенное неуважение к читателям. Особенно учитывая что в предыдущих статьях уже откровенно намекали что не надо так.