gpt4 book ai didi

SpecFlow Table.CreateInstance 返回 null

转载 作者:行者123 更新时间:2023-12-01 02:08:38 24 4
gpt4 key购买 nike

我正在使用 SpecFlow 版本 1.9.0
我有一个 POCO 类(class)

    public class MerchantContactDetails 
{
public string Title;
public string Firstname;
public string Lastname;
public string Companyposition;
public string Phonecode;
public string Phoneno;
public string Mobilecode;
public string Mobileno;
public string Email;
}

我的 Specflow 功能是
Scenario: Sample contact
When I add a new contact information
| title | firstname | lastname | companyposition | phonecode | phoneno | mobilecode | mobileno | email |
| Mr | Grim | Smith | Director | 1 (US) | 12345 | 1 (US) | 45678 | Grim.Smith@gmail.com |

我的步骤定义有
[When(@"I add a new contact information")]
public void WhenIAddANewContactInformation(Table table)
{
MerchantContactDetails ContactDetails = table.CreateInstance<MerchantContactDetails>();
}

执行场景时,我看到 ContactDetails 设置为 null。但是对象表的行数设置为 1,我可以通过调用显式访问值
table.Rows[0]["title"] => this works fine

只有 table.CreateInstance();返回空值

请有人能指出我正确的方向..?

此致

最佳答案

最后我找到了解决办法。将所有字段转换为属性使 SpecFlow 填充对象。
类定义现在看起来

public class MerchantContactDetails
{
public string Title{get;set;}
public string Firstname{get;set;}
public string Lastname{get;set;}
public string Companyposition{get;set;}
public string Phonecode{get;set;}
public string Phoneno{get;set;}
public string Mobilecode{get;set;}
public string Mobileno{get;set;}
public string Email{get;set;}
}

@ Sam Holder,感谢您的建议。列的名称可以不区分大小写。也可能包含空格。例如,在 SpecFlow 特性中,我们可能有名字,它与类属性名字完美匹配。

关于SpecFlow Table.CreateInstance 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738234/

24 4 0