Behave - 步骤参数

我们可以在步骤名称中包含参数。 在 use_step_matcher 方法的帮助下,这些参数可以由正则表达式或默认或扩展的解析器处理。

behave.use_step_matcher(name)

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

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

  • cfparse − 它有基数字段(CF)支持。 默认情况下,它会为连接的基数生成缺少的类型转换器(如果给出了等于 1 的基数类型转换器)。 它可以支持以下解析表达式 −

    {values:Type+} – Cardinality=1..N, many

    {values:Type*} – Cardinality=0..N, many0

    {values:Type?} – Cardinality=0..1, optional

    它允许使用类型转换器进行类型转换。

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

在 register_type 方法的帮助下,我们可以将自定义匹配器与新数据类型一起使用。

behave.register_type(w)

注册一个用户定义的类型,用于在步骤匹配时的类型转换期间进行解析。

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

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

  • pattern − 与 step 函数相关联的模式匹配。

  • func − step 函数是与模式相关联的。

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

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

  • regex_pattern:产生使用的文本正则表达式。

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

通过步骤装饰器参数获得的特征文件中步骤名称的参数。

属性如下 −

  • original − 步骤名称匹配的原文。

  • value − 类型转换后的参数值。

  • name − 参数名称。 如果未给出参数,则该值设置为 None。

  • start − 步骤名称中参数的起始索引。

  • end − 步骤名称中参数的结束索引。

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

特征文件中的一个步骤,通过步骤装饰器参数进行参数匹配得到。

属性如下 −

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

  • arguments − 参数列出具有从步骤名称中获得的匹配参数的实例。