1

我正在用生菜在 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

上述步骤this是冲突的步骤,碰巧在多个不同含义的场景中定义。然后将针对此步骤的所有出现执行此步骤的以下测试代码。

@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
4

1 回答 1

0

我对生菜不熟悉,但在 Cucumber 中你有 a 的概念Background

使用 a Background,您可以为所有场景定义一个共享的“给定”步骤,然后您可以删除冲突的步骤。

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

于 2012-08-15T08:34:55.567 回答