c# - 将场景大纲“示例”表解析为对象
问题描述
我一直在试图弄清楚如何将场景大纲示例解析为(自定义)对象,而无需在步骤名称中显式使用。
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | johndoe@mail.com |
| B | Jane | Doe | janedoe@mail.com |
我现在正在尝试找出如何将示例行解析为自定义约会对象
我一直在用表格查看 CreateInstance,但这似乎不起作用
[Given(@"The user enters details on the page")]
public void EnterDetails(Table table)
{
var appointment = table.CreateInstance<Appointment>();
driver.FindElement(By.Id("Firstname")).SendKeys(appointment.Firstname);
}
运行此程序时出现错误
Message: TechTalk.SpecFlow.BindingException : Parameter count mismatch! The binding method EnterDetails(Table)' should have 0 parameters
这是预约课
public class Appointment
{
public AppointmentReason Reason { get; set; }
public string Firstnam { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
}
谁能指出我正确的方向如何将示例行解析为约会对象?
解决方案
您没有将任何参数传递给 Given 函数,这就是它引发异常的原因。您可以传入这样的表格:
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
| Reason | Firstname | Lastname | Email |
| <Reason> | <Firstname> | <Lastname> | <Email> |
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | johndoe@mail.com |
| B | Jane | Doe | janedoe@mail.com |
给定步骤内的尖括号是参数。在这种情况下放置在一个表内。参数取自示例中的表格,因为您使用的是场景大纲。
推荐阅读
- gemfire - Pivotal GemFire 9.1.1:未在集群中创建复制区域
- c++ - 如何使用weak_ptr 作为参数?
- javascript - 如何从网站中获取中间值(Web Scraping)
- rxjs - 在 switchMap 运算符中过滤 Observable
- php - 提交后如何保持数组和动态复选框保持选中状态?
- html - Nuxt.js:不工作
- javascript - 如何在单击 href 时重定向到 URL?
- java - 从数组列表创建多维数组
- tensorflow - 如何在默认图中获取张量
- java - 在 Spark-cluster 上。是否有一个参数可以控制 spark 作业的最短运行时间