Behave - 步骤参数



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

behave.use_step_matcher(name)

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

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

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

    {values:Type+} – 基数=1..N,多

    {values:Type*} – 基数=0..N,多0

    {values:Type?} – 基数=0..1,可选

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

  • re - 它利用完整的正则表达式来解析子句。我们必须借助命名组 (? P<name>…) 来声明从文本中获得的变量,然后将其馈送到 step()。

我们可以使用 register_type 方法,结合自定义匹配器和新的数据类型。

behave.register_type(w)

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

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

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

  • pattern - 与步骤函数关联的模式匹配。

  • func - 步骤函数是模式关联的。

  • 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 - 参数列表,其中包含从步骤名称中获得的匹配参数的实例。

广告

© . All rights reserved.