首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对PagedList的AutoFixture定制

针对PagedList的AutoFixture定制
EN

Stack Overflow用户
提问于 2016-11-26 05:26:21
回答 1查看 60关注 0票数 1

我使用AutoFixture进行测试,但我的接口返回IPagedList而不是IList。问题是AutoFixture会生成空的分页列表。我刚接触AutoFixture,所以我的解决方案(顺便说一句,它不能正常工作)可能不是最好的。看看我做了什么:

代码语言:javascript
复制
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的文档太少了.

更新:到目前为止,我正在使用这个,但看起来有点杀伤力:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2017-10-14 15:43:36

The order of customizations matter。我还没有尝试过,但这可能有助于重新排序定制:

代码语言:javascript
复制
var fixture = new Fixture()
    .Customize(new PagedListCustomization<TEntity>())
    .Customize(new AutoMoqCustomization())
    .Customize(new MvcCustomization());

此外,从AutoFixture 3.0开始,您不应该需要MultipleCustomization

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40812450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档