PYPROGLIB Telegram 7096
🐍 Рабочий лайфхак: начинаем использовать pytest с 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
🔥93👍3🥱1



tgoop.com/pyproglib/7096
Create:
Last Update:

🐍 Рабочий лайфхак: начинаем использовать pytest с 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, какие аргументы подставлять.
Каждый набор данных из списка превращается в отдельный тест.
Добавить новый случай — просто добавить ещё одну строку в список.

Результат: меньше дублирования, больше читаемости, легко расширять тесты.

🐸 Библиотека питониста

#буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tgoop.com/pyproglib/7096

View MORE
Open in Telegram


Telegram News

Date: |

Add up to 50 administrators In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings.
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American