【问题标题】:Is there a way of creating an instance of a type with test data?有没有办法用测试数据创建一个类型的实例?
【发布时间】:2012-10-17 16:01:32
【问题描述】:

我有一个类型,想用测试数据创建它的一个实例。

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

最后我想做这样的事情:

var value = Builder.Create(type);
var constant = Expression.Constant(value, type);

【问题讨论】:

    标签: c# autofixture nbuilder


    【解决方案1】:

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

    以下通用代码:

    var value = fixture.CreateAnonymous<MyType>();
    

    只有在运行时才知道的类型看起来像这样:

    var context = new SpecimenContext(fixture.Compose());
    var value = context.Resolve(new SeededRequest(typeof(MyType), null))
    

    【讨论】:

    • 可行:) 当 AutoFixture 尝试为类型为接口的属性创建实例时,是否可以为 AutoFixture 注册接口的实现?
    • 是的,这是可能的。请作为一个单独的问题提出。我会在那里回答。
    • 我的 AutoFixture 版本中没有 fixture.Compose() 方法
    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多