[英]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.