Это продолжение туториала по 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")));
}
}
Обратите внимание на количество прогонов: 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")));
}
}
Хорошего изучения!!!
grossws
Вы по каждой аннотации отдельную статью планируете? Я понимаю что это перевод, но превращать хабр в твиттер (даже если автор оригинального набора туториалов делал их максимально короткими) -- это, имхо, перебор
val6852 Автор
Я уже не уверен, что перевод Туториала по JUnit 5 кому-то интересен.
Причины минусов не понятны.
Или просто нужно было объединить все аннотации в одну статью?
grossws
Или в небольшое количество. Про lifecycle annotations + per instance/per class вполне можно рассказать в одной статье (и то, мне кажется это уже было где-то во времена выхода junit5).
Аналогично repeated и parameterized, test factory, dynamic tests тянут, как максимум, на одну статью. И эта тема, скорее всего, тоже плотно освещалась.
Если этот поток статей ещё нормально смотрится личном блоге, на хабре он выглядит как поток спама. Что в свою очередь люди типа меня будут интерпретировать как откровенное неуважение к читателям. Особенно учитывая что в предыдущих статьях уже откровенно намекали что не надо так.