Behave 步匹配器


Behave 中有三种类型的 步骤 Matcher。它们解释如下:

  • ParseMatcher(解析):基于解析模块。

  • 扩展 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

运行特征文件后得到的输出如下所述。在这里,我们使用了命令 Behave --no-capture -f plain .

步骤 Matchers

输出显示 debit and credit .这两个值已通过特征文件中几乎相似的给定步骤传递。在步骤实现中,我们已经解析了这两个步骤。