[英]SpecFlow - How to setup test data on a entity with a custom type
在 C# -Entity Framework 應用程序中使用 SpecFlow,我試圖為以下結構的實體設置測試數據。
public partial class TYPE1
{
public int Prop1 { get; set; }
public virtual ICollection<TYPE2> Prop2 { get; set; }
}
public partial class TYPE2
{
public int Prop3 { get; set; }
}
測試數據 :
Given I have a Type1 record with following data
| Prop1 | Prop2 |
| 123 | 0 |
[Given(@"I have a Type1 record with following data")]
public void GivenIHaveAType1RecordWithFollowingData(Table table)
{
foreach (var row in table.Rows)
{
var record =
this.PopulateModelFromTableRow<TYPE1>(row);
this.test.DbContext.TYPE1.Add(record);
}
}
我試圖找出一種方法來為 Prop2 分配一個類型 2 值的列表。 我怎樣才能做到這一點?
您將需要通過兩個單獨的步驟創建實體並填充集合:
Given I have a Type1 record with following data
| Prop1 |
| 123 |
And the Type1 record I just created as the following Prop2:
| Prop2 |
| 0 |
| 4 |
第一步將創建一個新的Type1
對象並將其與Prop2
的空集合一起保存。 下一步應該獲取您剛剛創建的Type1
對象並使用數據表將項目添加到集合中。
Gherkin 從來沒有被設計成在一個步驟中構建包含集合的復雜對象。 有很多方法可以解決它,但它們通常會導致更難閱讀和維護的測試。 最佳實踐是在特定步驟中填充實體的集合屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.