(我没有找到这样做的方法,从源代码看来它不受支持,但我可能忽略了它)
我想做类似的事情:
(new Fixture())
.CreateAnonymous<Circle>(
new CircleSpecification { MinRadius = 1, MaxRadius = 5 }
);
所以这是 AutoFixture 中已经存在的类似种子习语的变体,但种子习语是非常硬编码的(或者我认为如此)。
问题:是否可以自定义夹具以接受样本的参数?
到目前为止,我最好的想法是构建一个包含结果对象的特殊规范类,以便您可以执行以下操作:
public class CircleSpecification {
public double MinRadius { get; set; }
public double MaxRadius { get; set; }
public Circle Circle { get; set; }
}
这样我就可以注册CircleSpecificationSpecimenBuilder
可以使用的:
Circle circle = Fixture.CreateAnonymous<CircleSpecification>(
new CircleSpecification { MinRadius = 0.0, MaxRadius = 5.0 }).Circle;
请注意,要使用带有种子重载的 CreateAnonymous 种子参数类型必须匹配方法返回类型。