【问题标题】:AutoFixture - how do I call a method, how to set a private setter of an autoproperty?AutoFixture - 如何调用方法,如何设置自动属性的私有设置器?
【发布时间】: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


    【解决方案1】:

    目前无法使用 AutoFixture 调用私有设置器。虽然它在内部使用反射,但在设计上它尊重类型的公共 API。

    有一个outstanding request on the Issue Board 可以使这个更可定制 - 如果您仔细阅读工作项,您会发现有一个启用填充受保护设置器的请求。

    但是,根据给出的示例,当然可以调用 SetAssignableId 方法。像这样的自定义应该可以解决问题:

    fixture.Customize<MyClass>(c => 
        c.Do(mc => 
            mc.SetAssignableId(fixture.CreateAnonymous<int>())));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多