【发布时间】:2011-04-19 20:55:47
【问题描述】:
这是我的课:
public MyClass {
public int Id { get; private set; }
public SetAssignableId (int id) {
this.Id = id;
}
}
我想让 AutoFixture 通过 SetAssignableId 或私有 setter 设置 Id。
【问题讨论】:
标签: c# autofixture
这是我的课:
public MyClass {
public int Id { get; private set; }
public SetAssignableId (int id) {
this.Id = id;
}
}
我想让 AutoFixture 通过 SetAssignableId 或私有 setter 设置 Id。
【问题讨论】:
标签: c# autofixture
目前无法使用 AutoFixture 调用私有设置器。虽然它在内部使用反射,但在设计上它尊重类型的公共 API。
有一个outstanding request on the Issue Board 可以使这个更可定制 - 如果您仔细阅读工作项,您会发现有一个启用填充受保护设置器的请求。
但是,根据给出的示例,当然可以调用 SetAssignableId 方法。像这样的自定义应该可以解决问题:
fixture.Customize<MyClass>(c =>
c.Do(mc =>
mc.SetAssignableId(fixture.CreateAnonymous<int>())));
【讨论】: