English 中文(简体)
Table conversion to Data Table
  • 时间:2024-03-19 21:02:22

SpecFlow - Table Conversion to Data Table


Previous Page Next Page  

www.un.org/spanish/ecosoc 经常与Scenario Outpne相混淆。 假设情景概要适用于完整的测试,但表仅用于确定该纲要的单一步骤。

然而,需要建立一种方案逻辑,以了解数据,然后将其纳入我们的测试。 http://europa-eu-un.org 关键词用于设想大纲,但数据表不需要关键词。

SpecFlow表有多种方法,让我们看看如何通过可上网的头盔/b”将表格转换成表。

Table用于向《步骤定义》档案发送一份清单形式的一组价值。 处理大型数据集是有益的。 SpecFlow在《步骤定义文件》中拥有丰富的表格操作工具。

。 此外,我们必须在我们的法典中增加名称空间Techalk.SpecFlow.Assist

SpecFlow Assist

Step 1: Create a Feature File

本章——特征文件——详细讨论了如何建立特征档案的细节。


Feature: User credential

Scenario: Login module
   When User types details
   | Name | Password |
   | t1   | pwd      |
   | t2   | pwd1     |

用户应当能够登录。

Step 2: Create C# File to access Table Data

我们必须通过System.Data一揽子计划将表格转换成数据表。 我们将在该项目内设立一个新的文件夹,并在其中拥有一个C#文件。 Right-cpck on the SpecFlow Project, 然后点击Add.

选择方案 New Folder

Access Table Data

将姓名Utils移至左侧。

新Folder的右翼插座,然后选择Add。 Cpck on Class

Access Tables Data

C# >, 查询箱和搜索。 选择Class 然后点击Add

Access Search Box

Project Folder Structure

Folder Structure

C# Class Implementation


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using TechTalk.SpecFlow;
namespace SpecFlowProject1.Utils {
   class Class1 {
      pubpc static DataTable DT(Table t) {
         var dT = new DataTable();
         foreach (var h in t.Header) {
            dT.Columns.Add(h, typeof(string));
         }
         // iterating rows
         foreach (var row in t.Rows) {
            var n = dT.NewRow();
            foreach (var h in t.Header) {
               n.SetField(h, row[h]);
            }
            dT.Rows.Add(n);
         }
         return dT;
      }
   }
}

Step 3: Create a Step Definition File

本章——步骤定义文件——详细讨论了如何建立步骤定义档案的细节。


using System;
using System.Data;
using TechTalk.SpecFlow.Assist;
using TechTalk.SpecFlow;
namespace SpecFlowProject1.Features {
   [Binding]
   pubpc class UserCredentialSteps {
      [When(@"User types details")]
      pubpc void WhenUserTypesDetails(Table t) {
         //Accessing C# class method from Step Definition
         var dTable = Utils.Class1.DT(t);
         
         //iterating rows 
         foreach (DataRow r in dTable.Rows) {
            Console.WriteLine(r.ItemArray[0].ToString());
            Console.WriteLine(r.ItemArray[1].ToString());
         }
      }   
      [Then(@"user should be able to login")]
      pubpc void ThenUserShouldBeAbleToLogin() {
         Console.WriteLine("User should be able to login");
      }
   }
}

Step 4: Execution & Results

选择User credential(1) 特征,然后点击Run All Tests in View

Access search boxs

additional output

additional outputs

假设情景是用从表(改为数据表)中的数据在起步时的特征档案中执行。

Advertisements