specflow table.CreateSet<object> 映射列名称不匹配
specflow table.CreateSet<object> mapping column name mismatches
我正在使用 specflow 并且有一个简单的 table:
FirstName | Surname|
Bob | Dylan |
和一个class如下:
public class Person{
public string FirstName {get;set;}
public string LastName {get;set;}
}
我想要 运行 的代码是:
var people = table.CreateSet<Person>();
问题:
如何将姓氏从 table 映射到对象中的 LastName?
干杯
目前(从 SpecFlow 2.2.1 开始)这是不可能的。
但是两周前我们得到了一个 PR,这将增加在列名和 属性 之间指定 "mapping" 的可能性。
代码在这里:https://github.com/techtalk/SpecFlow/pull/969
我们将合并此 PR 尚未解决,但目前没有不这样做的障碍。
欢迎对此 PR 提供反馈!
感谢 Andreas Willich,他表示将在未来的版本中添加添加别名的功能。
在那之前,我已经查看了方法的签名,它确实允许您指定一个函数,该函数将允许如下硬编码映射,这不是我一直在寻找的干净解决方案,但它修复了什么我需要它来做:
var people = table.CreateSet<Person>(ConvertMethod);
..... //return type is the same as you want and method takes a Tablerow as a parameter
public static Person ConvertMethod(TableRow row)
{
return new Person()
{
FirstName = row["firstName"],
LastName = row["surname"]
};
}
我正在使用 specflow 并且有一个简单的 table:
FirstName | Surname|
Bob | Dylan |
和一个class如下:
public class Person{
public string FirstName {get;set;}
public string LastName {get;set;}
}
我想要 运行 的代码是:
var people = table.CreateSet<Person>();
问题:
如何将姓氏从 table 映射到对象中的 LastName?
干杯
目前(从 SpecFlow 2.2.1 开始)这是不可能的。
但是两周前我们得到了一个 PR,这将增加在列名和 属性 之间指定 "mapping" 的可能性。
代码在这里:https://github.com/techtalk/SpecFlow/pull/969
我们将合并此 PR 尚未解决,但目前没有不这样做的障碍。
欢迎对此 PR 提供反馈!
感谢 Andreas Willich,他表示将在未来的版本中添加添加别名的功能。
在那之前,我已经查看了方法的签名,它确实允许您指定一个函数,该函数将允许如下硬编码映射,这不是我一直在寻找的干净解决方案,但它修复了什么我需要它来做:
var people = table.CreateSet<Person>(ConvertMethod);
..... //return type is the same as you want and method takes a Tablerow as a parameter
public static Person ConvertMethod(TableRow row)
{
return new Person()
{
FirstName = row["firstName"],
LastName = row["surname"]
};
}