Lettuce:從步驟定義調(diào)用步驟

我們的測(cè)試應(yīng)該盡可能的表達(dá)清晰。不過,我們還想重新使用我們以前的步驟。到目前為止,我們使用過的工具,你可能會(huì)得到很長(zhǎng)的步驟定義。

Scenario: Logged-in user does something cool.
  Given I go to the home page
  And I click the login button
  And I fill in username:floppy password:banana
  And I click "Login"
  When I finally do something interesting
  Then I'm already too bored to care.

在這種情況下,我們可能有一個(gè)測(cè)試用例(可能是幾個(gè)),它實(shí)際上是用來表達(dá)用戶如何與登錄表單交互的。在這里,我們得到了登錄順序的步驟定義。然而,當(dāng)?shù)卿洷韱斡幸饬x時(shí),這些步驟就非常多余。我們真的希望能夠在不重復(fù)我們的步驟定義的情況下定義這樣的東西。

Scenario: Logged-in user does something cool.
  Given I am logged in
  When I do something interesting
  Then The world becomes a better place

Lettuce提供了這樣一種方式,可以用一組助手來匹配每一個(gè)給定的語法術(shù)語-Given,When和Then。你可以像這樣完成以上的工作。

@step('I am logged in')
def is_logged_in(step):
    step.given('I go to the home page')
    step.given('I click the login button')
    # ... and so on.

步驟執(zhí)行塊

有時(shí)甚至直接從特性規(guī)范復(fù)制粘貼,去描述步驟執(zhí)行塊。使用step.behave_as方法,然后用str.format動(dòng)態(tài)填寫參數(shù)。例如,我們可以這樣寫上面的步驟定義:

@step('I am logged in')
def is_logged_in(step):
    step.behave_as("""
        Given I go to the home page
          And I click the login button
          And I fill in username:{user} password:{pass}
          And I click "Login"
    """.format(user='floppy', pass='banana'))

這可以與步驟參數(shù)捕獲相結(jié)合,使表達(dá)更清晰和避免代碼重復(fù)。


上一篇:Lettuce: Scenario Outlines
下一篇:Lettuce: Command Line

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,324評(píng)論 25 708
  • 要想短時(shí)間內(nèi)確定一個(gè)潛在或正在交往的人是否合適,很簡(jiǎn)單:和Ta一起去一個(gè)陌生的地方旅行,至少三天。 錢鐘書在《圍城...
    安慰記心理小店閱讀 728評(píng)論 2 12
  • 復(fù)習(xí):退貨 I'd like to return this sweater, please. 我想退掉這件毛衣。 ...
    0c05e63bafa4閱讀 363評(píng)論 0 0
  • 今晚做了兩個(gè)蔬菜和一個(gè)雞蛋面,喜歡這種為了美味準(zhǔn)點(diǎn)回家的心情,一天的種種,在最喧囂的地方得以松弛下來,你來我往之間...
    等一朵花盛開的時(shí)間閱讀 228評(píng)論 0 0

友情鏈接更多精彩內(nèi)容