是否有辦法編寫適用於多個關鍵字的步驟?好比說我的特點是:定義適用於多個關鍵字的Behave步驟(例如Given,When和Then)
Scenario: Something happens after navigating
Given I navigate to "/"
And say some cookie gets set
When I navigate to "/some-other-page"
Then something happens because of that cookie
我試圖避免同時定義:
@given('I navigate to "{uri}"')
def get(context, uri):
current_url = BASE_URL + uri
context.driver.get(current_url)
@when('I navigate to "{uri}"')
def get(context, uri):
current_url = BASE_URL + uri
context.driver.get(current_url)
如果只定義了一個,並嘗試你會得到一個錯誤raise NotImplementedError(u'STEP:
使用它作爲兩者。上面的例子並沒有那麼糟糕,因爲這個步驟很簡單,但是重複代碼似乎是不好的做法,而且對於更復雜的事情可能會發生同樣的事情,對我來說,看起來如果有像@all或@any關鍵字。
道歉,如果這已經某處回答了,但它的搜索,因爲它很難找到獨特的搜索字詞對於這類問題
我正在做類似的事情,但如果您沒有在步驟文件中將兩個不同的函數定義爲Given和Then(在您的示例中),則會出現「raise NotImplementedError(u'STEP:」錯誤。如果這個工作沒有做兩次,你的步驟定義是什麼樣子的? – Cynic
它對我有效當你在「Then」語句後面寫下「And」語句時,它將它視爲兩個「Then」語句 – user8021958