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
具有上下文变量中的 .table 属性的实现 Python 代码可以访问一个表(在 step 函数中传递)。表是表的一个实例。我们可以使用设置表来方便设置测试。
Python代码
访问table.(login_module.py)的python代码如下:
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项目中为文件设置的项目如下
运行特征文件后得到的输出如下所示,使用的命令是 Behave --no-capture -f plain .
输出显示打印的升压表。