Behave 简明教程

Behave - Step Parameters

我们可以在步骤名称中使用参数。这些参数可以通过正则表达式或默认解析器或扩展解析器在 use_step_matcher 方法的帮助下进行处理。

behave.use_step_matcher(name)

修改解析步骤文本时的参数匹配器。Behave 中存在多个内置解析器,如下所示 -

  1. parse − 它提供了一个简单的解析器,该解析器使用纯语法恢复步骤参数的正则表达式。例如,{parameter: type}。它允许使用类型转换器进行类型转换。

  2. cfparse − 它支持基数字段 (CF)。默认情况下,它会为连接基数生成缺失的类型转换器(如果给出了基数等于一的类型转换器)。它可以支持以下解析表达式 -{values:Type+} – Cardinality=1..N、many{values:Type*} – Cardinality=0..N、many0{values:Type?} – Cardinality=0..1,可选 它允许使用类型转换器进行类型转换。

  3. re − 它利用完整的正则表达式来解析从句。我们必须借助命名组 (? P<name>…) 声明从文本中获取的变量,然后将其提供给步骤 ()。

我们借助 register_type 方法可以对自定义匹配器以及新数据类型进行注册。

behave.register_type(w)

在步骤匹配时,为类型转换期间解析注册用户定义的类型。

class behave.matchers.Matcher(func, pattern ,step_type=None)

它从步骤名称中提取参数。

  1. pattern − 与步骤函数关联的模式匹配。

  2. func − 步骤函数与模式关联。

  3. check_match(step) − 与提供的步骤名称匹配。

  4. describe(schema=None) − 以函数或匹配器对象的文本形式给出描述。

  5. regex_pattern: 产生所利用的文本正则表达式。

class behave.model_core.Argument(start, end, original, value, name=Name)

带步骤装饰器参数的功能文件中步骤名称的参数。

属性如下 -

  1. original − 步骤名称中匹配到的原始文本。

  2. value − 经过类型转换的参数值。

  3. name − 参数名称。如果未提供参数,则值将设为 None。

  4. start − 参数在步骤名称中的起始索引。

  5. end − 参数在步骤名称中的结束索引。

class behave.matchers.Match(func, arguments=None)

特征文件中与参数匹配并使用步骤装饰器参数获取的一个步骤。

属性如下 -

  1. func − 适用于给定匹配的步骤函数。

  2. arguments − 获取步骤名称中的匹配的参数的实例的参数列表。