【发布时间】:2016-11-25 21:26:20
【问题描述】:
我正在使用 AutoFixture 进行测试,但我的接口返回 IPagedList 而不是 IList。问题是 AutoFixture 会生成空的分页列表。我是 AutoFixture 的新手,所以我的解决方案(顺便说一下不能正常工作)可能不是最好的。看看我做了什么:
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);
【问题讨论】:
标签: autofixture pagedlist