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()보다 작고 0보다 크게 관리하려면 어떻게해야합니까? 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);