- SpecFlow 教程
- SpecFlow - 主页
- SpecFlow - 简介
- 测试驱动开发
- Behave驱动开发
- SpecFlow - Visual Studio 安装
- Visual Studio 扩展安装
- SpecFlow - 项目设置
- 其他项目依赖项
- SpecFlow - 运行器激活
- SpecFlow - HTML 报告
- SpecFlow - 结合测试步骤
- SpecFlow - 创建第一个测试
- 配置 Selenium Webdriver
- SpecFlow - 小Cucumber
- SpecFlow - 小Cucumber关键词
- SpecFlow - 特征文件
- SpecFlow - 步骤定义文件
- SpecFlow - 挂钩
- SpecFlow - 背景插图
- 数据驱动测试示例
- 没有示例的数据驱动测试
- 表转换为数据表
- 表转换为字典
- 带有 CreateInstance 的表
- SpecFlow - 带有 CreateSet 的表
- SpecFlow 有用资源
- SpecFlow - 快速指南
- SpecFlow - 有用的资源
- SpecFlow - 讨论
SpecFlow - 数据驱动测试与示例
我们可以借助关键字Examples来执行数据驱动测试。我们还将借助关键字Scenario Outline对多个值执行相同的场景。
要考虑的数据集应依次传递到示例部分下方,并用|分隔。象征。因此,如果有三行,我们将从单个场景中执行三个测试用例。
场景大纲用于使用不同的数据集复制相同的场景。使用不同的值编写相同的测试既麻烦又耗时。例如,
我们可以将上述两个场景与场景大纲结合起来。
因此,我们看到场景大纲应该附带关键字Examples。对于示例段下方出现的每一行,都会执行一次场景大纲。
此外,我们还看到给定步骤具有<>分隔符。它指向示例表的标题。在执行将步骤与步骤定义匹配的任务之前,SpecFlow 应将值放入此表中。
要验证登录模块,我们需要执行以下步骤 -
用户输入用户名和密码。
验证用户应该能够登录。
我们将把上述步骤合并到功能文件中。
第 1 步:创建特征文件
如何创建功能文件的详细信息将在“功能文件”一章中详细讨论。
Feature: User credential Scenario Outline: Login module Given user types <username> and <password> Then user should be able to login Examples: | username | password | | tutorialspoint1| pwd | | tutorialspoint2| pwd1 |
步骤 2:步骤定义文件
如何创建步骤定义文件的详细信息将在“步骤定义文件”一章中详细讨论。
using System; using TechTalk.SpecFlow; namespace SpecFlowProject1.Features{ [Binding] public class UserCredentialSteps{ //regular expression used to point to data [Given(@"user types (.*) and (.*)")] public void GivenUserTypesUserAndPwds(string username, string password){ Console.WriteLine(username); Console.WriteLine(password); } [Then(@"user should be able to login")] public void ThenUserShouldBeAbleToLogin(){ Console.WriteLine("User should be able to login"); } } }
第 3 步:执行和结果
选择用户凭据(2),然后单击“运行视图中的所有测试”。
选择“登录模块”、“tutorialspoint1 场景”,然后单击“为此结果打开附加输出”链接。
该场景使用用户名 -tutorialspoint1 和密码 -pwd执行,如示例(第一行)中指定。
选择“登录模块”、“tutorialspoint2 场景”,然后单击“为此结果打开其他输出”链接。
测试使用用户名 -tutorialspoint2 和密码 -pwd1执行,如示例(第二行)中指定。