使用AutoFixture中的CreateMany省略特定字段

Kea*_*eks 10 c# unit-testing autofixture

我想创建foo的"很多"实例:

var fixture = new Fixture();
var expectedFoos = fixture.CreateMany<Foo>();
Run Code Online (Sandbox Code Playgroud)

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

var fixture = new Fixture();
var expectedFoo = fixture.Build<Foo>()
                         .Without(foo => foo.Relation1);
                         .Without(foo => foo.Relation2);
Run Code Online (Sandbox Code Playgroud)

但是,如何轻松创建满足此条件的多个实例?我读过有关标本制造商的文章,但这看起来真的有些过分.

我正在寻找一些简单的东西(因为BuildMany不存在而不能编译):

var fixture = new Fixture();
var expectedFoos = fixture.BuildMany<Foo>()
                          .Without(foo => foo.Relation1);
                          .Without(foo => foo.Relation2);
Run Code Online (Sandbox Code Playgroud)

Kea*_*eks 10

Customize是为了:

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


Enr*_*lio 8

使用Customize绝对是正确的答案.但是,仅仅为了文档,它Build也会起作用:

var expectedFoos = fixture.Build<Foo>()
                          .Without(foo => foo.Relation1)
                          .Without(foo => foo.Relation2)
                          .CreateMany();
Run Code Online (Sandbox Code Playgroud)