как инициализировать сложный объект для модульного тестирования?

Как инициализировать сложный объект случайными данными для тестирования?

У меня есть сложный объект, который выглядит так:

public class DynamicEntity
{
    public string EntityName { get; set; }
    public List<Entity> MappingEntityList { get; set; }
    public List<BaseAttributes> BaseAttributesList { get; set; }
}

Я пытаюсь инициализировать его случайными данными:

// Fixture setup
Fixture fixture = new Fixture();
DynamicEntity dynamicEntityFixture = fixture.Create<DynamicEntity>();

Затем я настраиваю свой издевательский объект, чтобы он возвращал этот dynamicEntityFixture:

_mockedObject.Setup(x => x.GetEntityProperties("account"))
                          .Returns(() => dynamicEntityFixture);

При запуске модульного теста я получаю:

Ploeh.AutoFixture.ObjectCreationException : AutoFixture не удалось создать экземпляр из System.Runtime.Serialization.ExtensionDataObject, скорее всего, потому, что он не имеет общедоступного конструктора, является абстрактным или закрытым типом.

Как я могу инициализировать сложный объект со случайными данными для тестирования?


person Alex Gordon    schedule 26.08.2016    source источник
comment
Вы не пометили autofixture, но, похоже, вы его используете. Вы пытались найти точное сообщение об ошибке? Например. посмотрите здесь.   -  person Sinatr    schedule 26.08.2016
comment
Эта ошибка очень распространена при использовании AutoFixture. Как выглядят классы Entity и BaseAttributes?   -  person Daniel Dušek    schedule 26.08.2016
comment
@Sinatr, твоя ссылка сработала!   -  person Alex Gordon    schedule 26.08.2016