这是我的班级:
public MyClass {
public int Id { get; private set; }
public SetAssignableId (int id) {
this.Id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
我想让AutoFixture通过SetAssignableId或私人设置器设置Id.
今天无法使用AutoFixture调用私有setter.虽然它在内部使用反射,但它在设计上尊重类型的公共API.
在问题板上有一个未完成的要求,使其更加可定制 - 如果您仔细阅读工作项,您将看到有一个请求可以填充受保护的设置者.
但是,通过给出的示例,可以调用SetAssignableId方法.像这样的定制应该可以解决问题:
fixture.Customize<MyClass>(c =>
c.Do(mc =>
mc.SetAssignableId(fixture.CreateAnonymous<int>())));
Run Code Online (Sandbox Code Playgroud)