Behave 简明教程
Behave - Setup Table
一个步骤可以有一个与其关联的文本和数据表。我们可以为一个步骤添加一个数据表。建议将表格数据缩进,并且必须为每行指定相等数量的列。
列数据应使用 | 符号分隔。
Feature File with Table (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
一个表可以用 context 变量(在步骤函数中传递)中的 .table 属性访问实现的 Python 代码。(表的一个实例。我们可以使用设置表来帮助设置测试。
Python code
访问表(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)
Corresponding Step Implementation File(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
Project setup
在 Python 项目中设置的文件如下所示
Output
运行功能文件后获得的输出如下,使用的命令是 behave --no-capture -f plain 。
输出显示打印了 step up 表。