- Behave教程
- Behave - 主页
- Behave - 简介
- Behave - 安装
- Behave - 命令行
- Behave - 配置文件
- Behave - 功能测试设置
- Behave - 小Cucumber关键词
- 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)
输出
下面提到运行特征文件后获得的输出。在这里,我们使用了命令beeve --no-capture -f plain。
输出显示支付完成吗?和False。输出 False 来自枚举数据类型。