背景
我想创建一个类的集合,但其中一些字符串属性具有受限制的值。我希望这些值在受限制的集合内随机生成。
我找到了自定义的方法,但是我的随机生成实现似乎没有使用任何AutoFixture特性,我不想重复造轮子:
var random = new Random();
var fixture = new Fixture();
fixture.Customize<MyClass>(b => b
.With(i => i.MyProperty, random.Next(2) == 0 ? "O" : "C"));
var result = fixture.CreateMany<MyClass>(1000);
问题
有没有更有效率的方法告诉AutoFixture我想要一个随机字符串 "O" 或 "C"?
编辑
与此同时,我意识到上面的代码根本不起作用,所以它不适合作为“备份”计划。(表达式:random.Next(2) == 0 ? "O" : "C" 只会计算一次)
ElementsBuilder
进行配置,然后添加一个ISpecimenBuilder
,将某些字符串的请求转发到该辅助类型。请参阅上面的链接以及以下链接获取一些示例:https://stackoverflow.com/a/49492820/126014 - Mark Seemann