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"]
        };
    }