2012-08-15 62 views
1

我用生菜擺弄學習BDD在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 

回答

0

我不熟悉的生菜,但在黃瓜你有Background的noition。

使用Background,您可以爲所有場景定義共享的「給定」步驟,因此您可以刪除衝突的步驟。

如果這不是您所需要的,那麼您將不得不更改步驟的文本,以更具體地瞭解他們的操作,以消除衝突。