开始玩Behave BDD 测试,我发现没有步骤定义命名空间的东西,这很容易导致 AmbiguousStep 异常。这里有哪些最佳实践?我认为当您的测试项目越来越大时,这将是一个问题。
这是我正在尝试做的事情:
特点一:
Feature: feature1
Scenario: f1s1
When take action
Then it's ok
特点2:
Feature: feature1
Scenario: f2s1
When take action
Then it's ok
foo4feature1.py:
@when('take action')
def step_impl(context):
assert True
@then("it's ok")
def step_impl(context):
assert True
bar4feature2.py:
@when('take action')
def step_impl(context):
assert True # some other logic here according to feature2
我的两个功能(功能 1和功能 2)都采取了行动。这两个步骤在它们的场景中具有不同的含义。他们只是碰巧同名(例如,采取行动)。我知道我可以仔细选择步骤的名称(例如,在feature2中使用“采取 f2 行动”而不是“采取行动” )以避免冲突。然而,在一个大型测试项目中,您不能确保每个人都记住其他人功能中的步骤名称。作为 BDD 方面的新手,我正在寻找可以遵循的最佳实践来处理这个问题。