✰✰✰✰✰ На кого рассчитан этот курс ✰✰✰✰✰
Целевая аудитория состоит из начинающих программистов, которые:
- обладают опытом разработки 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
- и многое другое
- Базовые знания в области синтаксических конструкций, параметризованных типов (generics) и коллекций
- Basic knowledge of Java syntax, generics and Java Collections Framework
