Behave - 枚举



枚举用于将多个不同的基于字符串的单词映射到值。

我们可能需要一个具有以下特征的用户定义数据类型:

  • 必须匹配少数几个单词。

  • 在测试执行之前预定义值。

对于上述场景,可以使用基于字符串的枚举。

特性文件

考虑一个名为“支付流程”的特性文件的示例,如下所示:

Feature − Payment Process
Scenario − Response
      When User asks "Is payment done?"
      Then response is "No"

在步骤实现文件中,TypeBuilder.make_enum 函数评估为提供的单词或字符串枚举提供的正则表达式模式。register_type 方法用于注册用户定义的类型,该类型可以在匹配步骤时解析任何类型转换。

此外,我们将传递参数:用“{}”括起来的用户定义枚举数据类型。

相应的步骤实现文件

上面特性文件的步骤实现文件如下所示:

from behave import *
from behave import register_type
from parse_type import TypeBuilder
# -- ENUM: Yields True (for "yes"), False (for "no")
parse_response = TypeBuilder.make_enum({"yes": True, "no": False})
register_type(Response=parse_response)
@when('User asks "{q}"')
def step_question(context, q):
   print("Question is: ")
   print(q)
@then('response is "{a:Response}"')
def step_answer(context, a):
   print("Answer is: ")
   print(a)

输出

运行特性文件后获得的输出如下所示。这里,我们使用了命令behave --no-capture -f plain

Enumeration Data Type

输出显示“支付完成了吗?”“False”。输出 False 来自枚举数据类型。

广告

© . All rights reserved.