**************************************************************************
Ситуация на 29 апреля 2022-го (когда что изменится, обновлю):
Юдеми наконец восстановила доступ для уже записавшихся, хотя
потенциальные слушатели из России и Белоруссии его все равно
не могут приобрести. Всю выручку от новых продаж Юдеми теперь
кладет себе в карман. Далее, доступа к форуму "вопрос-ответ" у меня
по-прежнему нет. Кроме того, мне больше не приходят уведомления
о новых вопросах и сообщениях слушателей. Может быть, когда-нибудь
Юдеми все вернет на свои места, но я лично на это не надеюсь.
На случай, если возникнет острая потребность со мной что-то обсудить,
воспользуйтесь, пожалуйста, Гуглом. А то всякий раз, когда я пытаюсь
тайком встроить ссылку, Юдеми присылает мне письма с угрозами
(они не разрешают вставлять ссылки, даже на свой собственный контент).
**************************************************************************
✰✰✰✰✰ На кого рассчитан этот курс ✰✰✰✰✰
Целевая аудитория состоит из начинающих программистов, которые:
обладают опытом разработки Java-приложений порядка одного года
мало или совсем не знакомы с концепцией модульного тестирования
желают приобрести навыки работы с каркасом JUnit версий 4 и 5 на профессиональном уровне
планируют приступить затем к освоению каркаса Mockito.
✰✰✰✰✰ Постановка задачи ✰✰✰✰✰
JUnit – самый популярный фреймворк для модульного тестирования Java-приложений, а последняя версия этого инструмента, т.е. JUnit 5, обладает еще более полезным и мощным функционалом.
Уверенное владение этим фреймворком станет серьезным активом в портфолио любого начинающего программиста.
Поскольку предыдущая редакция фреймворка до сих пор активно используется, да и кода на ней написано очень много, первая часть курса посвящена функционалу JUnit 4. Во второй части мы рассмотрим наиболее важные особенности JUnit 5, внимательно разберем отличия этих двух версий, а также ознакомимся с теоретическими основами модульного тестирования и рекомендуемыми практиками для создания грамотных юнит-тестов. Третий модуль содержит расширенные темы, в частности, как определять степени охвата тестируемого кода с помощью плагина ECLEmma, как создавать динамические тесты, регистрировать пользовательские расширения, а также как выполнить интеграцию с каркасом Mockito.
✰✰✰✰✰ Чему научится слушатель ✰✰✰✰✰
В ходе обучения слушатели познакомятся:
с методологией модульного тестирования;
с устройством каркаса JUnit;
с практикой тестирования в рамках интегрированной среды разработки Eclipse
а также приобретут начальные знания по каркасу Mockito
После завершения обучения слушатели смогут уверенно использовать данный инструмент для модульного тестирования своих продуктов на двух версиях каркаса: JUnit 4 и JUnit 5, в т.ч. в связке с фреймворком Mockito.
✰✰✰✰✰ Обзор тематики курса ✰✰✰✰✰
Модуль 1 – JUnit 4 (~3,5 часа видеолекций)
Развертывание и настройка учебной среды на базе Eclipse
Запуск юнит-тестов с командной строки
@Test-методы категории assert
Что такое assertion в Java
Методы assertFalse() и assertTrue()
Тестирование объектов
Метод assertArrayEquals()
Аннотации @Before и @After
Аннотации @BeforeClass и @AfterClass
Параметризованные тесты
Тестирование исключений
Тестирование производительности
Аннотации в Java: углубленное знакомство
JUnit «под капотом»: рефлексия в действии
Сборка юнит-тестов в комплекты
Модуль 2 – JUnit 5 и методология модульного тестирования (~3 часа видеолекций)
Миграция на JUnit 5
Краткий исторический экскурс
Классификация тестов ПО
Преимущества модульного тестирования
Грамотные юнит-тесты: принцип FIRST
JUnit 4 / JUnit 5: сходства и отличия
Новые виды ассертов
Новые виды аннотаций
Новый подход к параметризованным тестам
Применение матчеров hamcrest
Модуль 3 – Расширенные темы по JUnit 5 + связка с Mockito (2 ч 40 м видеолекций)
Допущения и класс Assumptions
Параметрические резольверы
Динамические тесты и класс DynamicTest
Пользовательские расширения
Моделирование «черным» и «белым» ящиком
Тестовые дублеры (Dummy Objects, Test Stubs, Mock Objects, Test Spies и Fake Objects)
Интеграция с каркасом Mockito
и многое другое...