Когда использовать осветитель в pytest, а не просто объявить переменную - PullRequest
0 голосов
/ 06 сентября 2018

Имеется следующий файл теста ...

(взят из примера на https://docs.pytest.org/en/latest/fixture.html)

test_with_fixture.py

import pytest

@pytest.fixture
def smtp_connection():
    import smtplib
    return smtplib.SMTP("smtp.gmail.com", 587, timeout=5)

Полагаю, это упрощенный пример, но в чем преимущество объявления соединения smtp в его пути, а не ...

test_without_fixture.py

import smtplib
smtp_connection = smtplib.SMTP("smtp.gmail.com", 587, timeout=5)

В тесте, который я пишу в настоящее время, у меня много статических значений, например

expected_result_of_calculation = 10 (и т. Д.)

Некоторые из них являются более сложными структурами данных, включая словари и списки.

Должен ли я объявить их как приборы или просто включить их в глобальную область моего тестового файла?

Я предполагаю, что приборы более полезны, когда вы хотите генерировать тестовые входы с помощью кода или прибор просто вернуть это? Это будет инкапсулировать генерацию этих данных. Но для статических данных, как у меня? Они нужны?

1 Ответ

0 голосов
/ 06 сентября 2018

Преимущества:

  • облегчает повторное использование
  • четкое разделение настроек, испытаний и демонтажа.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...