Behave 中有三种类型的 Step Matcher。它们在下面解释 -
- ParseMatcher (parse) - 基于解析模块。
- 扩展 ParseMatcher(cfparse) - 允许基数语法。
- RegexMatcher (re) - 基于正则表达式匹配模式。
解析匹配器
它是内置的步进匹配器,具有以下提到的功能:
- 易于使用和理解。
- 预定义和用户定义的数据类型支持此匹配器。
- 在数据类型的帮助下重新利用正则表达式。
- 隐藏正则表达式的复杂性。
扩展解析匹配器
它扩展了 Parse Matcher。它具有附加功能以及 Parse 匹配器的功能。
附加功能包括 -
- 理解基数字段语法。
- 为具有基数字段部分的字段生成缺少的类型转换器。
- 建立在解析类型上。
正则表达式匹配器
它具有以下特点 -
- 向后兼容 Cucumber。
- 与解析匹配器相比,更易于使用。
下面详细了解解析匹配器。
解析匹配器
特征文件中的步骤可能具有几乎相似的短语。Behave具有解析能力。方法 use_step_parser 用于此目的,必须将解析器类型作为参数传递给该方法。
对于解析匹配器,我们必须传递参数解析。它利用 parse 进行正则表达式的解析和匹配。
特征文件(几乎给出了类似的步骤)
类似步骤的特征文件如下 -
Feature − Payment Process
Scenario − Check Debit transactions
Given user is on "debit" screen
When user makes a payment
Scenario − Check Credit transactions
Given user is on "credit" screen
对应步骤实现文件
步骤实现文件如下 -
from behave import *
#define parser type
use_step_matcher("parse")
@given('user is on "{p}" screen')
def step_impl(context, p):
print(p)
@when('user makes a payment')
def step_pay_complete(context):
pass
运行特征文件后得到的输出如下所述。在这里,使用了命令行是:--no-capture -f plain
。
输出显示:debit 和 credit。这两个值已通过特征文件中几乎相似的给定步骤传递。在步骤实现中,已经解析了这两个步骤。