私はAutoFixtureを使用してテストを行っていますが、IListの代わりにIPagedListを返します。問題は、AutoFixtureが空のページングリストを生成することです。私はAutoFixtureを初めて使用しているので、おそらく私のソリューション(これは適切に機能しません)が最良ではありません。私が何をしたかを参照してください:PagedListの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);