Я делаю свои тесты с помощью AutoFixture, но мои интерфейсы возвращают IPagedList вместо IList. Проблема в том, что AutoFixture генерирует пустые выгружаемые списки. Я новичок в AutoFixture, поэтому, вероятно, мое решение (которое, кстати, не работает должным образом) не самое лучшее. Смотрите, что я сделал:Настройка AutoFixture для PagedList
public class PagedListCustomization<TEntity> : ICustomization
{
public void Customize(IFixture fixture)
{
fixture.Customize<IPagedList<TEntity>>(c => c.FromFactory(
() =>
{
var list = fixture.CreateMany<TEntity>();
int pageSize = fixture.Create<int>();
int pageIndex = fixture.Create<int>();
return list.ToPagedList(pageIndex, pageSize);
}));
}
}
.......
var fixture = new Fixture()
.Customize(new AutoMoqCustomization())
.Customize(new MvcCustomization())
.Customize(new MultipleCustomization())
.Customize(new PagedListCustomization<TEntity>());
Проблема заключается в том, что выгружаемого список все еще пуст, но я думаю, что это происходит потому, что, вероятно, pageIndex слишком велик.
Мои вопросы: 1) Как я могу управлять pageIndex меньше, чем list.Count() и больше нуля? 2) Есть ли более подходящий способ настроить это?
Большое вам спасибо! Существует так мало документ о AutoFixture ...
Обновление: Я до сих пор использую это, но выглядит излишеством:
int pageSize = new Generator<int>(fixture).First(n => n > 0 && n <= list.Count);
int pageIndex = new Generator<int>(fixture).First(n => n > 0 && n < list.Count/pageSize);