Как вы определяете приоритет шага в BDD

#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 /