🐍 Рабочий лайфхак: начинаем использовать pytest с parametrize
Тестирование функций может быть утомительным и однообразным. В
Например, есть функция
Вместо того чтобы писать три почти одинаковых теста:
Можно использовать parametrize:
Как это работает:
✅ Декоратор
✅ Каждый набор данных из списка превращается в отдельный тест.
✅ Добавить новый случай — просто добавить ещё одну строку в список.
Результат: меньше дублирования, больше читаемости, легко расширять тесты.
🐸 Библиотека питониста
#буст
Тестирование функций может быть утомительным и однообразным. В
pytest
есть супер-фича parametrize, которая позволяет запускать один тест с множеством входных данных — без дублирования кода.Например, есть функция
add_nums()
:def add_nums(nums):
return sum(nums)
Вместо того чтобы писать три почти одинаковых теста:
def test_123():
assert add_nums([1, 2, 3]) == 6
def test_negatives():
assert add_nums([1, 2, -3]) == 0
def test_empty():
assert add_nums([]) == 0
Можно использовать parametrize:
import pytest
@pytest.mark.parametrize(
"nums, expected_total",
[
([1, 2, 3], 6),
([1, 2, -3], 0),
([], 0),
]
)
def test_add_nums(nums, expected_total):
assert add_nums(nums) == expected_total
Как это работает:
@pytest.mark.parametrize
говорит pytest
, какие аргументы подставлять.Результат: меньше дублирования, больше читаемости, легко расширять тесты.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2❤1🥱1