SpecFlow - 背景说明
Background 关键字用于在功能文件内的所有场景之前复制相同的步骤。我们可以将这些步骤合并到 Background 段下,从而将它们移至背景。
它有助于为场景添加上下文。它可以有多个 Given 步骤。因此,它应在每个场景执行之前执行,但发布任何 Before 钩子。
Background 保留在第一个 Example 或 Scenario 之前,缩进级别相似。简而言之,它用于声明所有测试的通用步骤。
在上面的例子中,有两个场景,在执行每个场景之前,背景步骤应运行一次。
背景规则
让我们描述一下应用背景 − 时的一些规则
它应该用于定义简单的步骤,除非我们被迫将应用程序置于需要执行复杂步骤的状态。按照项目利益相关者的要求。
应该简短而切合实际。
所有场景也应该简短而切中要点。
背景示例
让我们看一个例子,其中我们在功能文件中的所有测试之前使用了背景步骤。例如,要为应用程序添加普通用户和管理员用户,我们需要在执行场景普通用户添加之前运行以下步骤 −
启动应用程序 URL。
提交用户名和密码
步骤 1:创建功能文件
有关如何创建功能文件的详细信息在 − 章中详细讨论功能文件。
Feature: Member addition
Background:
Given launch URL
Then enter name and password
Scenario: Normal user addition
Given user is on normal user addition screen
When enters normal user details
Then user should be added as normal user
Scenario: Admin user addition
Given user is on admin user addition screen
When enters admin user details
Then user should be added as admin user
步骤 2:创建步骤定义文件
有关如何创建步骤定义文件的详细信息,请参阅第 − 章"步骤定义文件"。
using System;
using TechTalk.SpecFlow;
namespace SpecFlowProject1.Features{
[Binding]
public class MemberAdditionSteps{
[Given(@"launch URL")]
public void GivenLaunchURL(){
Console.WriteLine("Url launched");
}
[Given(@"user is on normal user additon screeen")]
public void GivenUserIsOnNormalUserAdditonScreeen(){
Console.WriteLine("User is on normal user addition screen");
}
[Given(@"user is on admin user addition screen")]
public void GivenUserIsOnAdminUserAdditionScreen(){
Console.WriteLine("User is on admin user addition screen");
}
[When(@"enters normal user details")]
public void WhenEntersNormalUserDetails(){
Console.WriteLine("User enters normal user details");
}
[When(@"enters admin user details")]
public void WhenEntersAdminUserDetails(){
Console.WriteLine("User enters admin user details");
}
[Then(@"enter name and password")]
public void ThenEnterNameAndPassword(){
Console.WriteLine("User enters name and password");
}
[Then(@"user should be added as normal user")]
public void ThenUserShouldBeAddedAsNormalUser(){
Console.WriteLine("User should be added as normal user");
}
[Then(@"user should be added as admin user")]
public void ThenUserShouldBeAddedAsAdminUser(){
Console.WriteLine("User should be added as admin user");
}
}
}
步骤 3:执行和结果
选择 SpecFlowProject(2),然后单击 在视图中运行所有测试。
选择 普通用户添加场景,然后单击 为此结果链接打开其他输出。
在上面的输出中,背景步骤 − 已启动给定 URL 和 然后输入名称和密码 已在实际普通用户场景之前执行。
选择 管理员用户添加 功能,然后单击 为此结果打开其他输出 链接。
在上面的输出中,后台步骤 − 已启动给定 URL 和 然后输入名称和密码 已在实际管理员用户场景之前执行。

