对于具有只读修饰符的类,在Moq中有任何想法:
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 =&GT; m.ID
有什么想法吗?
答案 0 :(得分:11)
问题不在于它是只读的,而是它不是虚拟的。
答案 1 :(得分:2)
我所知道的唯一一个模拟引擎允许在类和密封类上更改非虚方法是Typemock。
大多数其他模拟框架在接口方面效果更好,如果接口不可用,被模拟的成员需要是虚拟的。