AutoFixure,从预定义列表中随机选择

时间:2017-12-11 20:46:20

标签: c# autofixture

我想知道在AutoFixure中,有没有办法从预定义列表中随机选择?例如,当我使用fixture.Createfixture.CreateMany时,它会从预定义列表中随机选择一个对象。我没有找到documentation的任何类似内容并搜索Stack Overflow,所以我不确定它是否可能。

1 个答案:

答案 0 :(得分:4)

您可以使用ElementsBuilder<T>

[Fact]
public void Example()
{
    var fixture = new Fixture();
    fixture.Customizations.Add(
        new ElementsBuilder<MyObject>(
            new MyObject("foo"),
            new MyObject("bar"),
            new MyObject("baz")));

    var actual = fixture.Create<MyObject>();

    Assert.Contains(actual.Name, new[] { "foo", "bar", "baz" });
}

此测试通过。

在实际的代码库中,您应该将修改打包在ICustomization