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

设置表

输出显示打印的步骤表。