有没有办法用测试数据创建一个类型的实例?

Roo*_*ian 5 c# autofixture nbuilder

我有一个类型,并希望用测试数据创建它的实例.

我知道像NBuilderAutoFixture这样的框架可以创建在设计时(<T>)已知类型的实例.这些框架是否能够基于仅在runtime(Type)中已知的类型创建实例?

最后,我想做一些事情:

var value = Builder.Create(type);
var constant = Expression.Constant(value, type);
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 6

AutoFixture确实支持这一点.但是,据我所知,没有方便的扩展方法来做到这一点.

以下通用代码:

var value = fixture.CreateAnonymous<MyType>();
Run Code Online (Sandbox Code Playgroud)

使用仅在运行时已知的类型看起来像这样:

var context = new SpecimenContext(fixture.Compose());
var value = context.Resolve(new SeededRequest(typeof(MyType), null))
Run Code Online (Sandbox Code Playgroud)

  • 在我的AutoFixture版本中没有`fixture.Compose()`方法 (2认同)