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 和 然后输入名称和密码 已在实际管理员用户场景之前执行。