Behave 多方法

Behave 多方法

在特征文件中,也许有一些步骤具有几乎相似的短语。比如说。

Given user makes payment of 100 INR
And user makes payment of 10 Dollar

在这里,我们可以有不同的步骤定义来区分INR和Dollar。为此,我们可以使用多方法的方法,对于不同的数据类型,必须要有不同的正则表达式。

特征文件(几乎相似的步骤)

考虑到下面给出的特征文件–

Feature − Multi-Methods
   Scenario − Purchase
      Given User is on shop
      When user purchases 3 shirts
      And user purchases 4 pants

在步骤实现文件中, TypeBuilder.make_choice 函数为提供的选择评估一个正则表达式模式。方法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 .

Behave - 多方法

该输出显示了购买项目和它们的数量。这两个值在特征文件中的传递步骤几乎相似(但数据类型不同)。在步骤实现中,我们使用了多种方法来获得这些值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程