- 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 - 数据类型
Behave中有两种类型的数据类型,即预定义的和用户定义的。让我们首先了解什么是预定义的数据类型。
预定义数据类型
Behave 使用解析模块来解析步骤定义中的参数。让我们探讨一些支持步骤定义且不需要像用户定义数据类型那样注册的解析类型。
w(str 类型)- 下划线和字母。
W(str 类型)- 下划线和非字母。
s(str 类型)- 空白。
S(str 类型)- 非空白。
d(int 类型)- 数字。
D(str 类型)- 非数字。
n(int 类型)- 具有千位分隔符的数字。
%(浮点类型)- 百分比。(转换为值/100.0)
f(浮点型) - 固定 - 点数。
e (float 类型) - 浮点 - 点数和指数。
g(浮点类型)- 数字格式。
b(int 类型)- 二进制数字。
(int 类型)- 八进制数字。
x(int 类型)- 十六进制数字。
ti(日期时间类型)- ISO 8601 日期/时间格式的时间。
te(日期时间类型)- RFC 2822 电子邮件数据/时间格式的时间。
tg(日期时间类型)- 全局数据/时间格式的时间。
ta(日期时间类型)- 美国数据/时间格式的时间。
tc(日期时间类型)- ctime() 数据/时间格式。
th (datetime 类型) - HTTP 日志数据/时间格式的时间。
tt(时间类型)
在步骤实现中,我们将传递参数:用“{}”括起来的数据类型。
具有 % 数据类型的特征文件
% 数据类型的特征文件如下 -
Feature − Payment Process Scenario Outline: Credit card transaction Given user is on credit card payment screen When user makes a payment of "<p>" percent of total Examples: Amounts | p | |80% | |90% |
对应步骤实施文件
该文件如下 -
from behave import * @given('user is on credit card payment screen') def credit_card_pay(context): print('User is on credit card payment screen') #passing parameter in % datatype enclosed in {} @when('user makes a payment of "{p:%}" percent of total') def step_impl(context, p): print('Number is: ') print(p)
输出
运行特征文件后获得输出,使用的命令是behave --no-capture -f plain。
连续输出如下 -
输出显示从 % 数据类型获得的 0.8 和 0.9,表示从特征文件传递的 80% 和 90% 值。
用户定义的数据类型
Behave 还具有用户定义的数据类型。方法register_type用于注册用户定义的类型,可以在匹配步骤时解析该类型以进行任何类型转换。
特征文件
名为支付流程的功能的功能文件如下 -
Feature − Payment Process Scenario Outline: Credit card transaction Given user is on credit card payment screen When user makes a payment of "<amount>" of total Examples: Amounts |amount | |75 | |85 |
在步骤实现中,我们将传递参数:用户定义的数据类型,用“{}”括起来。方法register_type用于注册用户定义的类型,可以在匹配步骤时解析该类型以进行任何类型转换。
对应步骤实施文件
该文件如下 -
from behave import * from behave import register_type #convert parsed text to float def parse_percent(t): return float(t) #register user-defined type register_type(Float=parse_percent) @given('user is on credit card payment screen') def credit_card_pay(context): print('User is on credit card payment screen') @when('user makes a payment of "{amount:Float}" of total') def step_impl(context, amount): print('Number is: ') print(amount)
输出
运行特征文件后获得输出,使用的命令是behave --no-capture -f plain。
连续输出如下 -
输出显示75.0和85.0已转换为浮点值(借助用户定义的转换)。这些参数作为整数类型从特征文件传递。