6

起订量中对于带有 readonly 修饰符的类的任何想法:

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 上的设置无效。

任何想法?

4

2 回答 2

11

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

于 2009-06-18T21:43:05.447 回答
2

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

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

于 2009-06-22T15:11:08.057 回答