Behave optional相关

Behave optional相关

在特征文件中,可能有一些步骤的短语几乎是相似的。Behave具有解析能力,因此一个步骤定义就可以涵盖这些步骤。 use_step_parser 方法用于此,我们必须将解析器类型作为参数传给该方法。

对于扩展的解析匹配器,我们必须传递参数cfparse。它有Cardinality Field(CF)支持。默认情况下,它为连接的cardinality生成缺失的类型转换器(如果给定cardinality的类型转换器等于1)。

它可以支持以下解析表达式 –

  • {values:Type+} – Cardinality=1..N, many
    • {values:Type*} – Cardinality=0..N, many0
    • {values:Type?} – Cardinality=0..1, optional

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

几乎类似步骤的特征文件如下 −

Feature  Payment Process
Scenario  Check Debit transactions
      Given user is on "debit" screen
   Scenario  Check Credit transactions
      Given user is on "credit" screen
Python

方法register_type用于注册一个用户定义的类型,该类型可以在匹配步骤时被解析为任何类型转换。

相应的步骤实现文件

下面给出了步骤实现文件–

from behave import *
import parse
#define parse type
use_step_matcher("cfparse")
# for whitespace characters
@parse.with_pattern(r"x\s+")
def parse_string(s):
#type converter for "x" succeeded by single/multiple spaces
   return s.strip()
#register user-defined datatype
register_type(x_=parse_string)
#optional part :x_? cardinality field in parse expression
@given('user is on {:x_?}{payment} screen')
def step_payment(context, x_, payment):
   print("Payment type: ")
   print(payment)
Python

输出

运行特征文件后得到的输出如下,使用的命令是 behave –no-capture -f plain .

Behave optional相关

该输出显示了 借方贷方。 这两个值在特征文件中几乎与步骤相似。在执行步骤中,我们用解析表达式中的cardinality字段解析了这两个步骤。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册