Это рассказ о параметризованном тесте, используемом в анализе граничных значений. Вместо того, чтобы вводить граничные значения в метод тестирования одно за другим, мы можем вместе определить тестовые случаи, в которых различаются только некоторые значения.
Параметризованные тесты
Тесты граничных значений
Анализ граничных значений — это метод тестирования программного обеспечения, в котором тесты предназначены для включения представителей граничных значений в диапазон. — Википедия
Пример метода тестирования
Вот пример метода, который мы собираемся использовать для тестирования. Я делаю приложение, используя YouTubeAPI. Этот метод ставит «K» или «M» в конце в зависимости от количества просмотров.
При анализе граничных значений мы проверим значения -1 и 0, 999 и 1000, 999999 и 1000000. Каждый из счетчиков просмотров должен превратиться в «0», «0», «999», «1K», «999K». и «1M».
Итак, без использования параметризованного теста тестовые случаи должны выглядеть так, как показано ниже.
Все 6 тестовых случаев завершатся без ошибок. На самом деле это не так, но вам может показаться, что эти тестовые примеры слишком длинные и будут раздуваться каждый раз, когда вы добавляете граничные значения.
Вот почему в подобных ситуациях рекомендуются параметризованные тесты.
Преобразование в параметризованное тестирование
Для преобразования нам нужно использовать @ParameterizedTest вместо @Test и перечислить тестовые шаблоны в @CsvSource. То, что мы определяем в @CsvSource, станет аргументами для метода testViewCountToKM.
Все 6 тестовых случаев были протестированы должным образом. Тесты стали компактнее, а читабельность улучшилась.