AutoFixture - как мне вызвать метод, как установить частный установщик autoproperty? - PullRequest
4 голосов
/ 20 апреля 2011

Вот мой класс:

public MyClass {
  public int Id { get; private set; }
  public SetAssignableId (int id) {
    this.Id = id;
  }
}

Я бы хотел, чтобы AutoFixture установил Id через SetAssignableId или частный установщик.

1 Ответ

5 голосов
/ 20 апреля 2011

Сегодня нет способа вызвать частный установщик с помощью AutoFixture. Несмотря на то, что он использует внутреннее отражение, по своему дизайну он учитывает открытый API типа.

На доске выдачи имеется невыполненный запрос , чтобы сделать его более настраиваемым - если вы внимательно прочитаете рабочий элемент, вы увидите, что есть запрос на включение заполнения защищенных установщиков.

Однако в приведенном примере, безусловно, можно вызвать метод SetAssignableId. Такая настройка должна помочь:

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