Имеется следующий файл теста ...
(взят из примера на 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
(и т. Д.)
Некоторые из них являются более сложными структурами данных, включая словари и списки.
Должен ли я объявить их как приборы или просто включить их в глобальную область моего тестового файла?
Я предполагаю, что приборы более полезны, когда вы хотите генерировать тестовые входы с помощью кода или прибор просто вернуть это? Это будет инкапсулировать генерацию этих данных. Но для статических данных, как у меня? Они нужны?