簡體   English   中英

Autofixture c#用一個自定義對象創建一個對象列表

[英]Autofixture c# create a list of objects with one custom object

我在我的單元測試中使用 [AutoFixture][1] 來簡化我的測試設置。 有時我有一個用例,我需要一個包含一個特定對象的列表。

var inputValues = AutoFixture.Build<TestObject>().CreateMany().ToList();
inputValues[0] = new TestObject { name = "best guy"}

目前,我通過下面的代碼剪輯解決了這個問題。 我相信有更好的解決方案。

我發現這篇文章 [使用 Autofixture C# 創建具有特定值的列表][2] 但我真的很高興這個解決方案。

我也知道這樣的事情:

var inputValues = AutoFixture.Build<TestObject>().With(c => c.Name = "test" ).CreateMany().ToList();

但這會將所有列表條目設置為相同的值。 [1]: https : //github.com/AutoFixture/AutoFixture [2]: https : //stackoverflow.com/a/66653510/9533580

這個問題已經在 SO 上回答了幾次。 你可以在這里這里看到答案。

最好的選擇是將自定義對象/值注入現有集合。 類似於您提供的第一個示例。

如果你真的想,你可以創建一個樣本生成器,它計算它返回一個值的次數並在第一個之后停止,但實際上這不值得付出努力。 此外,您的測試會更糟,因為您會讓讀者不那么明顯地看到該獨特項目與其他項目的不同之處。

也許如果你能提供一個更具體的例子,給你一些建議會更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM