- Behave 教程
- Behave - 首页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 特性测试设置
- Behave - Gherkin 关键字
- Behave - 特性文件
- Behave - 步骤实现
- Behave - 初步步骤
- Behave - 支持的语言
- Behave - 步骤参数
- Behave - 场景大纲
- Behave - 多行文本
- Behave - 设置表
- Behave - 步骤中的步骤
- Behave - 背景
- Behave - 数据类型
- Behave - 标签
- Behave - 枚举
- Behave - 步骤匹配器
- Behave - 正则表达式
- Behave - 可选部分
- Behave - 多方法
- Behave - 步骤函数
- Behave - 步骤参数
- Behave - 运行脚本
- Behave - 排除测试
- Behave - 重试机制
- Behave - 报告
- Behave - 钩子
- Behave - 调试
- Behave 有用资源
- Behave - 快速指南
- Behave - 有用资源
- Behave - 讨论
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。
输出显示“支付完成了吗?”和“False”。输出 False 来自枚举数据类型。
广告