#python #testing #bdd #pytest
#python #тестирование #bdd #pytest
Вопрос:
Рассмотрим следующие шаги:
# Step A
@when(parsers.parse('I edit user {user} in {account}'))
@when('I edit user <user> in <account>')
def when_I_edit_user_in_account(user, account):
# Step B
@when(parsers.parse('I edit user {user}'))
@when('I edit user <user>')
def when_I_edit_user(user):
Мне интересно, как BDD определяет, какой шаг выбрать. В моих примерах шагов он всегда выбирает шаг B, даже если мой шаг:
When I edit user Tom in Main Account
Всегда ли он выбирает кратчайший соответствующий шаг? Есть ли способ изменить это? Существуют ли какие-либо известные шаблоны проектирования для этой проблемы?
Вещи, которые я пробовал:
- Изменение порядка шагов в коде (возможно, совпадение с первым найденным)
- Измените формулировку шагов (работает, но на самом деле это не решение)
Являются ли шаги неправильными по замыслу? Должен ли я всегда принудительно передавать учетную запись?
Примечания: pytest-bdd http://pytest-bdd.readthedocs.io/en/latest /