我第一次使用SpecFlow爲我的項目編寫測試,並遇到一個小問題。如何在SpecFlow中使用table.CreateSet <>(myClass)()生成缺失值?
我隔壁班:
public class FancyName
{
[DataMember]
public Guid Guid { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public List <Country> Countries { get; set; }
}
我想生成這個類中使用SpecFlow助手我的測試。
下面是場景的一部分:
[...]
When i add some names
| Name | Countries |
| UK | 1 |
| US | 2 |
[...]
我嘗試解析在步驟的定義是這樣的:
[When(@"I add some names")]
public void AddNames(Table table)
{
var names = table.CreateSet<FancyName>();
[...]
}
而且我遇到了兩個問題:
- 我不通過Guid,因爲想要生成它就像
Guid.NewGuid()
那樣創建的對象包含null
- 我通過國家排序,但我需要創建
List<Country>()
。
我曾嘗試迭代表格並手動創建FancyName
對象,但據我所知它不是SpecFlow的方式。我試圖查看文檔,找到合適的解決方案並不幸運。
可能有人知道解決這個問題的好方法嗎? 在此先感謝。
國家類型是怎麼樣的? 最後應該怎麼看你的類型的實例? –