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: |

With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. Read now
from us


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