我有一个类型,想要用测试数据创建它的实例。
我知道像 NBuilder 或 AutoFixture 这样的框架可以创建设计时已知的类型实例(<T>
)。这些框架是否能够基于仅在运行时(Type
)知道的类型创建实例?
最后我想做点什么:
var value = Builder.Create(type);
var constant = Expression.Constant(value, type);
答案 0 :(得分:6)
AutoFixture确实支持这一点。但是,据我所知,没有方便的扩展方法来做到这一点。
以下通用代码:
var value = fixture.CreateAnonymous<MyType>();
看起来像只有在运行时才知道的类型:
var context = new SpecimenContext(fixture.Compose());
var value = context.Resolve(new SeededRequest(typeof(MyType), null))