pytest
установка в основном основана на фиксаторах, и мне нравится этот подход, потому что он более атомарный, явный и менее ограничивает наследование классов в xUnit.Существуют ли какие-либо соглашения или руководящие указания по созданию приборов вместо вспомогательных функций? 1 Рассмотрим код:
def create_flavored_cake(flavor):
return Cake(flavor)
def test_chocolate():
cake = create_flavored_cake('chocolate')
assert cake.is_yummy()
def test_broccoli():
cake = create_flavored_cake('broccoli')
assert cake.is_yummy()
def test_broccoli_with_risins():
cake = create_flavored_cake('broccoli')
cake.add('risins')
assert cake.is_yummy()
Следует ли create_flavored_cake
преобразовать в прибор? 2 Разве такой сценарий, в котором тесты имеют идентичные операторы, но разные параметры, должен побудить меня преобразовать вспомогательную функцию в прибор, чтобы упростить параметризацию и уменьшить дублирование? 3 Должен ли я использовать приборы только для настройки и демонтажа? 4 Или это не имеет значения, и по соглашению, если таковые имеются, следует использовать прибор с самого начала? 5
Мне не очень нравится параметризация приборов с помощью indirect
Но, похоже, нет лучшего способа.Это потому, что это плохая практика? 6 Я знаю, что могу также использовать pytest.mark.parametrize
, который будет выглядеть лучше IMO.Итак, где мне следует провести границу между использованием осветителя, вспомогательной функции и каким-то другим подходом (если есть лучшее решение) и с учетом их параметризации? 7
Я добавил верхние индексыдля справки вопроса.Вам не нужно давать им ответы.