簡體   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