【问题标题】:NBuilder parameterless constructor errorNBuilder无参数构造函数错误
【发布时间】:2016-11-09 11:19:37
【问题描述】:

我们正在使用 NBuilder 为我们的测试生成测试数据。我们有一些带有私人二传手的模型。因此,只能在整个构造函数中设置这些属性。问题是我们从 NBuilder 得到以下错误:

CompanyAddressViewModel 没有默认的无参数构造函数

我理解错误。我真的需要在我的类中创建一个默认构造函数吗?

这是我的 NBuilder 代码:

Builder<CompanyAddressViewModel>.CreateNew().Build()

【问题讨论】:

  • 同样的问题。例如 Newtonsoft.Json 能够在没有默认构造函数的情况下实例化类。这个特性在 NBuilder 中也会很有帮助。

标签: c# nbuilder


【解决方案1】:

您可以使用 WithConstructor() 或 WithFactory() 方法,在 Net Core 2.1 中不推荐使用 WithConstructor() 方法。

Builder&lt;CompanyAddressViewModel&gt;.CreateNew(). WithFactory (() =&gt; new parameter()).Build()

【讨论】:

    【解决方案2】:

    你需要使用With方法。

    Builder<CompanyAddressViewModel>
                   .CreateNew()
                   .With(() => new CompanyAddressViewModel(...))
                   .Build()
    

    【讨论】:

      【解决方案3】:

      以前的版本使用WithConstructor()方法,但是现在已经过时了,所以你应该使用WithFactory()方法:

      Builder<CompanyAddressViewModel>
               .CreateNew()
               .WithFactory(() => new CompanyAddressViewModel("your", "parameter"))
               .Build()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-14
        • 1970-01-01
        • 2014-07-06
        • 2012-03-25
        • 1970-01-01
        • 2014-03-09
        相关资源
        最近更新 更多