TestNG, Level 1
1. Подготовка к использованию
- интеграция со средами разработки
- интеграция со сборщиками Maven, Ant, Gradle
2. Формирование тестового набора, основные аннотации @Test, @BeforeX, @AfterX
3. Assert и Assertion
4. Конфигурационный файл
5. Зависимости между тестами, порядок выполнения
6. Группы тестов
7. Параметризация тестов
- через конфигурационный файл
- через @DataProvider
8. Параллельное выполнение тестов
TestNG, Level 2
1. Фабрики тестов @TestFactory
- параметризация провайдеров данных
- конфигурационное тестирование
- построение сложных сценариев из простых блоков
2. Использование Listeners
- IMethodInterceptor (пример: упорядочивание тестов)
- IHookable (пример: немедленное повторение “упавших” тестов)
- IAnnotationTransformer2 (пример: игнорирование тестов, помеченных специальной аннотацией)
3. Инъекция информации о тестах и результатах в @BeforeX, @AfterX, @Test и @DataProvider
- протоколирование выполнения тестов
- дополнительные аннотации, управляющие окружением (пример: перезапуск браузера перед определёнными тестами)
- универсальные провайдеры данных (пример: загрузка тестовых данных из файлов)
- автоматическое снятие скриншотов, видеозапись хода выполнения тестов
JUnit, Level 1
1. Подготовка к использованию
- интеграция со средами разработки
- интеграция со сборщиками Maven, Ant, Gradle
2. Формирование тестового набора, основные аннотации @Test, @Suite, @BeforeX, @AfterX
3. Assert и Assume
4. Стандартные “расширенные” запускатели тестов
- группировка тестов в категории (Categories)
- параметризация тестов (Parametrized)
5. @Rule, замена @BeforeX и @AfterX правилами
JUnit, Level 2
1. Более сложные правила
- параметризация тестов, в том числе загрузка данных из файлов
- немедленное повторение “упавших” тестов
- автоматическое снятие скриншотов, видеозапись хода выполнения тестов
- дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)
2. @RunsWith -- самодельные запускатели тестов
- конфигурационное тестирование
- порядок выполнения тестов
- дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)
3. @Theories -- почти тестирование на основе моделей