тестирование и возможные его аннотации-2 OTUS
2026-03-10 18:44 Diff

Во второй части статьи поговорим об аннотациях и JUnit 4. Начало смотрите здесь.

Работа с JUnit 4

Второй вариант реализации поставленной изначально задачи – запуск JUnit 4. Здесь из Джавы версии 5.0 были добавлены новые функции. Основная – это annotations. Через аннотации допускается объявление тестов. Также здесь присутствует обратная совместимость с предыдущей разработкой фреймворка.

Вот пример, который использовался ранее. Только здесь используются новые возможности и функции:

Ключевые изменения в версии JUnit 4

Для того, чтобы выбрать, каким вариантом проверки пользоваться, важно понимать, какие корректировки внедрены в новой разработке. К ним относят следующие моменты:

  1. Допускается наследование от Assert, но оно не является обязательным.
  2. Внедрена аннотация before. Задает методы, которые вызываются перед каждым тестом. Методы – public void. В приведенном примере предустановка – генерирование тестовых данных.
  3. Допускается использование BeforeClass. Отвечает данная annotation за методы, вызываемые до того, как будет создан экземпляр тест-класса. Здесь они public static void. Применяется, когда у класса несколько проверок с разнообразными предустановками или оные задействуют одинаковые данные.
  4. After – методы, вызываемые после выполнения тестов. Относятся к типу public void. Тут расположены операции высвобождения ресурсов. В рассматриваемом примере это – очистка тестовой информации.
  5. AfterClass по своему смыслу похож на BeforeClass. Отвечает за методы, которые реализовываются после проведения проверки.
  6. Test в виде аннотации – это тестовые методы. В данной «области» простираются непосредственные проверки. Присутствуют специальные параметры: expected – задание ожидаемого исключения и timeout – время, спустя которое, проверка получает статус «провалена».

Далее будут приведены примеры, в которых основное условие – использование аннотаций в JUnit 4.

Наглядные примеры

Выше – самый простой вариант. Но можно провести игнорирование выполнения теста. Для этого используется аннотации в JUnit под названием Ignore:

Также можно задействовать те или иные правила, заданные программером до того, как будет реализована проверка. Возможность появляется, если соответствующие манипуляции расширят функционал рассматриваемого «элемента». Чтобы справиться с этой задачей, нужно:

  • создать public поле от MethodRule;
  • задействовать аннотацию с ключевым словом Rule.

Выглядит это так:

Проверку можно сконфигурировать при помощи аннотации RunWith. Тестовые классы, содержащие тестовые методы, иногда объединяют воедино:

Для объединения оных в группы применяется Categories. В тесте сначала определяется «категория», а затем – настраиваются запускаемые категории тестов в Suite:

Об аннотациях

Аннотация в JUnit – синтаксические метаданные, заданные в специальной форме. Добавляются в первоначальный написанный код. Применяются для того, чтобы анализировать приложение, компилировать его или выполнять.

Аннотации могут быть приписаны к:

  • пакетам;
  • классам;
  • методам;
  • параметрам;
  • переменным (int и не только).

Отвечают подобные «объекты» за такие функции как:

  • передача информации информатору/компилятору;
  • передача данных инструментарию, используемому для генерирования иных кодификаций, настроек и так далее;
  • получение сведений посредством отражения.

Соответствующие «объекты» значительно упрощают процесс программирования. Особенно когда речь заходит о проверке кодификаций.

Основные аннотации

Представление (запись)Принцип работы (описание)@Test
public void testMethod()Тестовый методы@Test(timeout=100)
public void testMethod()Провал теста при превышении заданного «таймаута»@Test (expected = MyException.class)
public void testMethod()Выбор исключения, относящегося к MyException, в противном случае — провал@Ignore
public void testMethod()Игнорирование заданного тестового метода@BeforeClass
public static void testMethod()Вызывается один раз для класса. Делается это перед тем, как выполнить проверку. Размещается инициализация, выполняемая всего лишь единожды. Пример – считывание информации, используемых в будущем в тестовых методах@AfterClass
public static void testMethod()Вызывается после реализации проверки для заданного класса. Тут пишут то, что выполняется один раз. Пример – прекратить соединение с БД или удалить лишнюю информацию@Before
public static void beforeMethod()Вызов перед каждой проверкой в пределах тестового класса. Чаще всего применяется при инициализации чего-либо@After
public static void afterMethod()Схож с предыдущим вариантом. Обычно характеризует деинициализацию

Проверки Asserts и их типы

Что за проверкаХарактеристикаfail()
fail(String message)Завершение с ошибкой, провал проверкиassertTrue(boolean condition)
assertTrue(java.lang.String message, boolean condition)Проверка «кондишн» на равенство значения по trueassertFalse(boolean condition)
assertFalse(String message, boolean condition)Аналогично предыдущему варианту, но с falseassertEquals(<тип> expected, <тип> actual)
assertEquals(String message, <тип> expected, <тип> actual)Удостоверение равенства, где к типу относят Object, а также переменные разных видовassertArrayEquals(byte[] expecteds, byte[] actuals)
assertArrayEquals(String message, <тип>[] expecteds, <тип>[] actuals)Равенство массивовassertNotNull(Object object)
assertNotNull(String message, Object object)Удостоверение в том, что объект не nullassertNull(Object object)
assertNull(String message, Object object)Удостоверение в том, что заданный объект выступает в качестве пустого (null)assertSame(Object expected, Object actual)
assertSame(String message, Object expected, Object actual)Сверка равенства двух элементов

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

Важно: чтобы хорошо разбираться в основах JUnit 4, рекомендуется в первую очередь хорошенько изучить аннотирование.

Секрет успешного изучения JUnit

Разобраться с тестированием в Джаве на самом деле не так трудно. Достаточно ознакомиться с приведенным тестовым случаем. Но самостоятельно не всегда понятно, что к чему.

В таких ситуациях на помощь приходят специализированные курсы. Можно выбрать JUnit или всю Джаву для углубленного изучения. Такие занятия помогут лучше разбираться в том, что такое return, example, а также import static org и другие записи в программировании на заранее выбранном языке. С их помощью удастся понять, как:

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

Курсы рассчитаны на срок от 2 до 12 месяцев. По выпуску выдается сертификат установленной формы. Занятия возможны в дистанционной форме.