繁体   English   中英

SpecFlow - 如何在具有自定义类型的实体上设置测试数据

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM