Как стать автором
Обновить

Комментарии 2

Спасибо за статью! В твоём решении я вижу следующие плюсы:

  1. "заполни коллекцию чем-нибудь" и десятком вложенных readonly-полей - тогда это действительно быстро и удобно.

  2. Можно использовать With(), что семантически более верно

[Fact]
public void CreateMessage_Lucky_Numbers_Build_Do_Should_NotBeEmpty()
{
    HelloRequest message = _fixture.Build<HelloRequest>()
        .Do(request => request.LuckyNumbers.AddRange(_fixture.CreateMany<int>()))
        .Create();

    message.LuckyNumbers.Should().NotBeEmpty();
}

Но почему не использовать IPostprocessComposer<T> Do()? Тем более, что мы собираем тестовое сообщение, нам будут нужны определенные данные в коллекции

Баг, обсуждение и теоретический фикс уже есть на гитхабе, надо только подождать

https://github.com/AutoFixture/AutoFixture/issues/1339

https://github.com/AutoFixture/AutoFixture/issues/1350

Типы сообщений, с которыми я работал действительно были более сложные, с несколькими уровнями вложенности. Про баг на гитхабе не знал. Благодарю!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории