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