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

Работа с JUnit 4

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

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

Ключевые изменения в версии 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.

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

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

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

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

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

Изучаем J-Юнит в Джаве: тестирование и возможные его аннотации-2

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

Аннотация в 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)
Проверка «кондишн» на равенство значения по true
assertFalse(boolean condition)
assertFalse(String message, boolean condition)
Аналогично предыдущему варианту, но с false
assertEquals(<тип> 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)
Удостоверение в том, что объект не null
assertNull(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 месяцев. По выпуску выдается сертификат установленной формы. Занятия возможны в дистанционной форме.