- 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 - 表转换为字典
表格可以保存特征文件中水平和垂直方向的数据。通过Dictionary对象,我们将了解如何以键值对的方式垂直访问特征文件中的数据。
第 1 步:创建特征文件
如何创建功能文件的详细信息将在“功能文件”一章中详细讨论。
Feature: User credential Scenario: Login module When User types details | KY | Val | | username | tutorialspoint | | password | pwd1 | Then user should be able to login
步骤 2:创建 C# 文件来访问表数据
我们必须通过System.Collections.Generic包将表转换为字典。我们将在项目中创建一个新文件夹,并在其中包含一个 C# 文件。右键单击SpecFlow 项目,然后单击添加。
选择“新建文件夹”选项。
将文件夹命名为Utils 。
右键单击创建的新文件夹,然后选择“添加”选项。单击班级。
项目文件夹结构
C# 类实现
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using TechTalk.SpecFlow;
namespace SpecFlowProject1.Utils {
class Class1 {
public static Dictionary<string, string> ToDT(Table t) {
var dT = new Dictionary<string, string>();
// iterating through rows
foreach (var r in t.Rows) {
dT.Add(r[0], r[1]);
}
return dT;
}
}
}
步骤 3:创建步骤定义文件
如何创建步骤定义文件的详细信息将在“步骤定义文件”一章中详细讨论。
using System;
using TechTalk.SpecFlow;
namespace SpecFlowProject1.Features {
[Binding]
public class UserCredentialSteps {
[When(@"User types details")]
public void WhenUserTypesDetails(Table t) {
//Accessing C# class method from Step Definition
var dict = Utils.Class1.ToDT(t);
Console.WriteLine(dict["username"]);
Console.WriteLine(dict["password"]);
}
[Then(@"user should be able to login")]
public void ThenUserShouldBeAbleToLogin() {
Console.WriteLine("User should be able to login");
}
}
}
第 4 步:执行和结果
选择“用户凭证(1)功能”,然后单击“运行视图中的所有测试”。
选择“登录模块方案”,然后单击“为此结果打开附加输出”链接。
该场景是在“何时”步骤中使用从特征文件中的表(转换为字典)传递的数据执行的。