【问题标题】:Omitting a specific field with CreateMany from AutoFixture使用 AutoFixture 中的 CreateMany 省略特定字段
【发布时间】:2014-03-07 23:46:06
【问题描述】:

我想创建 foo 的“许多”实例:

var fixture = new Fixture();
var expectedFoos = fixture.CreateMany<Foo>();

问题是,Foo 是一个实体框架实体,具有我不想创建的关系。如果我只需要一个实例,我可以这样做:

var fixture = new Fixture();
var expectedFoo = fixture.Build<Foo>()
                         .Without(foo => foo.Relation1);
                         .Without(foo => foo.Relation2);

但是我怎样才能轻松创建多个满足这个条件的实例呢?我读过关于标本制作者的文章,但在这里似乎真的有点矫枉过正。

我正在寻找这么简单的东西(由于BuildMany 不存在而无法编译):

var fixture = new Fixture();
var expectedFoos = fixture.BuildMany<Foo>()
                          .Without(foo => foo.Relation1);
                          .Without(foo => foo.Relation2);

【问题讨论】:

    标签: c# unit-testing autofixture


    【解决方案1】:

    这就是Customize 的用途:

    var fixture = new Fixture();
    fixture.Customize<Foo>(o => o
           .Without(foo => foo.Relation1);
           .Without(foo => foo.Relation2));
    var expectedFoos = fixture.CreateMany<Foo>();
    

    【讨论】:

      【解决方案2】:

      使用Customize 绝对是正确的答案。但是,为了documentationBuild 也可以:

      var expectedFoos = fixture.Build<Foo>()
                                .Without(foo => foo.Relation1)
                                .Without(foo => foo.Relation2)
                                .CreateMany();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-19
        • 2023-03-05
        • 2022-10-18
        相关资源
        最近更新 更多