添加背景以具有一组步骤,它接近于一个场景。可以将上下文添加到具有背景的多个场景中。它在特征的每个场景之前运行,但在执行之前的钩子之后执行。
背景一般用于执行登录场景或数据库连接等前置条件。
可以添加背景描述以提高人类可读性。 它只能在特征文件中出现一次,并且必须在 Scenario
或 Scenario Outline
之前声明。
背景不应用于创建复杂状态(仅在无法避免的情况下)。 这一段应该简短而真实。 此外,应该避免在一个特征文件中包含大量场景。
具有背景的特征文件
具有标题为付款过程的特征背景的特征文件如下 -
Feature − Payment Process
Background:
Given launch application
Then Input credentials
Scenario − Credit card transaction
Given user is on credit card payment screen
Then user should be able to complete credit card payment
Scenario − Debit card transaction
Given user is on debit card payment screen
Then user should be able to complete debit card payment
对应步骤实现文件
文件如下 -
from behave import *
@given('launch application')
def launch_application(context):
print('launch application')
@then('Input credentials')
def input_credentials(context):
print('Input credentials')
@given('user is on credit card payment screen')
def credit_card_pay(context):
print('User is on credit card payment screen')
@then('user should be able to complete credit card payment')
def credit_card_pay_comp(context):
print('user should be able to complete credit card pay')
@given('user is on debit card payment screen')
def debit_card_pay(context):
print('User is on debit card payment screen')
@then('user should be able to complete debit card payment')
def debit_card_pay_comp(context):
print('user should be able to complete debit card payment')
运行特征文件后获得的输出如下所述,此处使用的命令是:behave --no-capture -f plain
。
持续输出如下 -
输出显示在每个场景之前运行两次的后台步骤(给定启动应用程序和然后输入凭据)。