- Behave 教程
- Behave - 首頁
- Behave - 簡介
- Behave - 安裝
- Behave - 命令列
- Behave - 配置檔案
- Behave - 特性測試設定
- Behave - Gherkin 關鍵字
- Behave - 特性檔案
- Behave - 步驟實現
- Behave - 初步步驟
- Behave - 支援的語言
- Behave - 步驟引數
- Behave - 場景大綱
- Behave - 多行文字
- Behave - 設定表格
- Behave - 步驟中的步驟
- Behave - 背景
- Behave - 資料型別
- Behave - 標籤
- Behave - 列舉
- Behave - 步驟匹配器
- Behave - 正則表示式
- Behave - 可選部分
- Behave - 多方法
- Behave - 步驟函式
- Behave - 步驟引數
- Behave - 執行指令碼
- Behave - 排除測試
- Behave - 重試機制
- Behave - 報告
- Behave - 鉤子
- Behave - 除錯
- Behave 有用資源
- Behave - 快速指南
- Behave - 有用資源
- Behave - 討論
Behave - 多方法
特性檔案中可能存在步驟,這些步驟具有幾乎相同的短語。例如,
Given user makes payment of 100 INR And user makes payment of 10 Dollar
這裡,我們可以使用不同的步驟定義來區分印度盧比和美元。為此,我們可以使用多方法方法,其中必須為不同的資料型別提供不同的正則表示式。
特性檔案(幾乎相同的步驟)
請考慮以下特性檔案:
Feature − Multi-Methods
Scenario − Purchase
Given User is on shop
When user purchases 3 shirts
And user purchases 4 pants
在步驟實現檔案中,**TypeBuilder.make_choice** 函式評估為提供的選項提供的正則表示式模式。method register_type 用於註冊使用者定義的型別,該型別可以在匹配步驟時用於任何型別轉換。
此外,我們將傳遞引數:用“{}”括起來的使用者定義資料型別。
相應的步驟實現檔案
步驟實現檔案如下所示:
from behave import *
from behave import register_type
from parse_type import TypeBuilder
parse_dress = TypeBuilder.make_choice(["shirts", "t-shirts"])
#register user-defined datatype
register_type(Dress=parse_dress)
parse_pant = TypeBuilder.make_choice(["pants", "gowns"])
#register user-defined datatype
register_type(Pant=parse_pant)
@given("User is on shop")
def step_user_shop(context):
pass
# multiple methods being used .
@when(u"user purchases {count:n} {d:Dress}")
def step_dress(context, count, d):
print("User purchased: ")
print(d)
print("Count is:")
print(count)
@when(u"user purchases {count:n} {p:Pant}")
def step_pant(context, count, p):
print("User purchased: ")
print(p)
print("Count is:")
print(count)
輸出
執行特性檔案後獲得的輸出如下所示,使用的命令為**behave --no-capture -f plain**。
輸出顯示了購買的商品及其數量。這兩個值已在特性檔案中使用幾乎相同的步驟(但資料型別不同)傳遞。在步驟實現中,我們使用了多種方法來獲取這些值。
廣告