- 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 - 设置表
步骤可以具有与其关联的文本和数据表。我们可以添加一个带有步骤的数据表。建议表数据缩进,并且每行必须具有相同的列号。
列数据应该用 | 分隔 象征。
带表的功能文件 (Login.feature)
功能文件如下所述 -
Feature − User Information Scenario − Check login functionality Given Collection of credentials | username |password | | user1 | pwd1 | | user2 | pwd2 | Then user should be logged in
实现 Python 代码可以通过上下文变量(在步骤函数中传递)中的 .table 属性来访问表。表是表的一个实例。我们可以使用设置表来方便设置测试。
Python代码
访问表的Python代码。(login_module.py)如下 -
class Deprt(object): def __init__(self, username, ms=None): if not ms: ms = [] self.username = username self.ms = ms def m_addition(self, usernane): assert usernane not in self.ms self.ms.append(usernane) class LModel(object): def __init__(self): self.loginusrs = []f self.passwords = {} def usr_addition(self, username, password): assert username not in self.loginusrs if password not in self.passwords: self.passwords[password] = Deprt(password) self.passwords[password].m_addition(username)
对应步骤实现文件(step_implg.py)
该文件如下 -
from behave import * from features.steps.login_module import LModel @given('Collection of credentials') def step_impl(context): model = getattr(context, "model", None) if not model: context.model = LModel() #iterate rows of table for r in context.table: context.model.usr_addition(r["username"], password=r["password"]) @then('user should be logged in') def step_impl(context): pass
项目设置
Python工程中该文件设置的工程如下
输出
运行功能文件后获得的输出如下所示,使用的命令是beeve --no-capture -f plain。
输出显示打印的步骤表。