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) 功能,然后单击 在视图中运行所有测试。
选择 登录模块场景,然后单击 为此结果打开其他输出链接。
场景已使用从 When 步骤中的功能文件中的表 (转换为字典) 传递的数据执行。

