如何避免BDD中的名称冲突(生菜)

时间:2012-08-15 08:19:27

标签: namespaces bdd lettuce

我正在研究生菜以学习Django中的BDD,而我想到的情况是不同场景中的两个步骤碰巧具有相同的名称,例如,

Feature: a feature A
    Scenario: a scenario S1
        Given this is the conflicted step
        Then chect the result of scenario S1

Feature: a feature B
    Scenario: a scenario S2
        Given this is the conflicted step
        Then chect the result of scenario S2

上述步骤 这是冲突的步骤 碰巧在具有不同含义的多个场景中定义。然后,对于此步骤的所有实例,将执行此步骤的下面的测试代码。

@step(r'this is the conflicted step')
def mytest(step):
    # do test

我的问题是,是否有一种命名空间机制允许我们为具有相同名称但在不同场景中的步骤创建不同的测试代码?例如,我希望以下测试代码或类似的东西:

@step(r'a feature A', r'this is the conflicted step')
def aaaa(step):
    # do test

@step(r'a feature B', r'this is the conflicted step')
def bbbb(step):
    # do other test

1 个答案:

答案 0 :(得分:0)

我不熟悉生菜,但在黄瓜中,你有Background的意思。

使用Background,您可以为所有方案定义共享的“给定”步骤,这样您就可以删除冲突步骤。

如果这不是您所需要的,那么您将不得不更改步骤的文本,以更具体地说明他们的行为,以消除冲突。