3 августа 2020 4050
Это последняя статья из нашей серии о внедрение зависимостей и тестировании в JUnit 5. В ней мы поговорим о параметризованных тестах.
Предыдущая часть из серии по ссылке.

Это последняя статья из нашей серии о внедрение зависимостей и тестировании в JUnit 5. В ней мы поговорим о параметризованных тестах.

3. Параметризованные тесты

Параметризованные тесты позволяют проводить тест несколько раз с разными аргументами. Главное преимущество в том, что можно написать один тест и проводить тестирование с рядом различных аргументов. Такие тесты будут безопаснее, и с их помощью можно проверять различные вводные данные. Методы аннотируются с помощью @ParameterizedTest. Необходимо декларировать как минимум один источник, который предоставляет аргументы для каждого вызова и затем использует эти аргументы в тестовом методе.

@ValueSource — это самый простой из возможных источников. Необходимо указать единый массив литеральных значений для предоставления одного аргумента на каждый вызов параметризованного теста. Использование этой аннотации показано в Примере 4 (Listing 4). Сценарий теста предполагает проверку числа слов в нескольких данных предложениях, данных в качестве параметров.

Listing 4

В примере выше мы делаем следующее:

  1. Отмечаем тест как параметризованный, используя соответствующую аннотацию (1).

  2. Затем указываем значения, передаваемые в качестве аргумента тестового метода (2). Тестовый методы выполняется дважды, по одному разу для каждого из аргументов, предоставленных с помощью аннотации @ValueSource.

@EnumSource дает возможность использовать экземпляры enum. Эта аннотация обеспечивает параметр опциональных имен, который позволяет указать, какие экземпляры должны быть использованы или исключены. По умолчанию используются все экземпляры enum.

В Примере 5 (Listing 5) показано использование аннотации @EnumSource для проверки числа слов в данных предложениях, предоставленных как экземпляры enum.

Listing 5

В приведенном выше примере представлен один параметризованный тест. Он работает следующим образом:

  1. Тест получает в качестве параметров CSV-файл, указанный в аннотации @CsvSource (1). Этот тест выполняется три раза, по одному для каждой строки CSV-файла.

  2. Строка CSV-файла анализируется, и первое значение присваивается параметру expected, а второе значение присваивается параметру sentence.

@CsvFileSource позволяет использовать CSV-файлы из переменной classpath. Каждая строка CSV-файла запускает одно выполнение параметризованного теста.

В Примере 6 (Listing 6) показано использование аннотации @CsvFileSource, а в Примере 7 (Listing 7) показано содержимое файла word_counter.csv на classpath. Сценарий теста предполагает проверку числа слов в нескольких данных предложениях, данных в качестве параметров, на этот раз в формате CSV, имеющим CSV-файл в качестве ресурса для ввода данных.

Listing 6

Listing 7

В приведенном выше примере представлен один параметризованный тест. В качестве параметров он получает параметры, содержащиеся в файле, указанном в аннотации @CsvFileSource (1). Этот тест выполняется три раза, по одному для каждой строки CSV-файла. Строка CSV-файла анализируется, и первое значение присваивается параметру expected, а второе значение присваивается параметру sentence.

Заключение

В этой серии статей рассмотрены новые возможности предоставления параметров для модульного тестирования в JUnit 5 с помощью внедрения зависимостей. Мы показали, как это делать эффективно с помощью различных распознавателей параметров (TestInfoParameterResolver, TestReporterParameterResolver, RepetitionInfoParameterResolver). Кроме того, показано, как писать повторяющиеся и параметризованные тесты (аннотации @RepeatedTest и @ParameterizedTest).


Автор Catalin Tudose, Java and Web Technologies Expert


Последние статьи в блоге

Системный аналитик 100 lvl — дорожная карта развития

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

23 декабря 2024

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

Тестирование программного обеспечения окружено множеством заблуждений. Эти стереотипы нередко приводят к недопониманию его реальной роли и важности для успешного создания продуктов. Рассмотрим восемь самых распространенных мифов о тестировании и объясним, почему они не соответствуют действительности.

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

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

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

Андрей Бирюков рассказывает о методологии, которая помогает разрабатывать качественные, устойчивые и эффективные веб-приложения.

12 сентября 2024

Баги, которые стали фичами

Многие вещи, которые мы используем ежедневно, были случайно открыты. В честь дня тестировщика рассказываем про 5 багов, которые стали фичами.

09 сентября 2024

Шаблоны облачного проектирования

Читайте про наиболее популярные шаблоны облачного проектирования: шаблон Bulkhead и шаблон Sidecar.

06 сентября 2024

Бесплатные мини-курсы ко Дню знаний

Друзья, поздравляем с Днём знаний! Желаем любопытства, открытий и новых побед!

02 сентября 2024

5 курсов со скидкой 30%

Друзья, в сентябре стартует 5 курсов со скидкой 30%*

29 августа 2024

Исследование IBS: на одну вакансию в Java-разработке приходится 4 резюме

По данным исследования рекрутингового центра IBS, наибольшая конкуренция среди соискателей наблюдается среди Python-разработчиков: на одну вакансию приходится 10 резюме. В менее конкурентной среде находятся Java-разработчики (4 резюме на одну вакансию). Самыми дефицитными являются специалисты по языку Go: менее 2 резюме на одну вакансию.

28 августа 2024

Индексирование баз данных в PostgreSQL: погружение в тему

В продолжение серии статей об устройстве системы управления базами данных (СУБД) PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

28 августа 2024

Книги для системных и бизнес-аналитиков, а также будущих и нынешних архитекторов

Наш коллега, архитектор информационных систем Сергей Политыко, поделился полезными книжными рекомендациями.

Жизнь компании
19 августа 2024

Сценарии кибератак с использованием ИИ. Внутренний периметр.

Кибератаки, направленные на внутренние периметры организаций, становится особенно актуальной темой. Внутренние атаки могут происходить как от злоумышленников с доступом к ресурсам, так и извне, используя уязвимости внутренней инфраструктуры. Использование ИИ в таких атаках позволяет автоматизировать и улучшить процесс поиска уязвимостей, создать вредоносный код и разработать методы социальной инженерии, что увеличивает скорость и масштаб атак. Расскажем про сценарии таких атак подробнее.

16 августа 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.