【问题标题】:How to create a list of objects with one custom object in AutoFixture?如何在 AutoFixture 中使用一个自定义对象创建对象列表?
【发布时间】:2021-12-19 12:55:23
【问题描述】:

我在单元测试中使用AutoFixture,以简化我的测试设置。有时我的用例是我需要一个包含一个特定对象的列表。

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

目前我用下面的代码片段解决了我的问题。我相信有更好的解决方案。

我找到了这个帖子Create a list with specific values with Autofixture C#,但我真的很高兴这个解决方案。

我也知道这样的事情:

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

但这会将所有列表条目设置为相同的值。

【问题讨论】:

    标签: c# unit-testing autofixture


    【解决方案1】:

    这个问题已经在 SO 上回答过几次了。你可以看到答案herehere

    最好的选择是将自定义对象/值注入现有集合。与您提供的第一个示例类似。

    如果您真的想这样做,您可以创建一个样本构建器来计算它返回值的次数并在第一个值之后停止,但实际上这不值得付出努力。此外,您的测试会更糟,因为您会让读者不太清楚该独特项目与其他项目的不同之处。

    如果你能提供一个更具体的例子,给你一些建议会更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 2015-11-16
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      相关资源
      最近更新 更多