【问题标题】:How do you mock class with readonly property?你如何用只读属性模拟类?
【发布时间】:2009-06-18 21:34:15
【问题描述】:

在起订量中对带有只读修饰符的类的任何想法:

Class myClass
{
   private  int id;
   public int Id{ get {return id;}}

  public myClass(int id)
  { this.id  = id }
}

我试图模拟这个对象:

var myMock= new Mock<myClass>();
myMock.SetupGet(m => m.ID).Return(555);

它返回给我错误:

System.ArgumentException:无效 在不可覆盖的成员上设置 m=>m.ID。

有什么想法吗?

【问题讨论】:

    标签: c# mocking moq


    【解决方案1】:

    问题不在于它是只读的,而在于它不是虚拟的。

    【讨论】:

      【解决方案2】:

      据我所知,唯一允许更改类和密封类的非虚拟方法的模拟引擎是 Typemock。

      大多数其他模拟框架与接口一起工作得更好,如果接口不可用,则被模拟的成员需要是虚拟的。

      【讨论】:

        猜你喜欢
        • 2012-08-03
        • 2010-11-30
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多