我正在尝试模拟(Moq lib)抽象类(在此示例中为X类)。在此类内部,它是一个已分配为[ForeignKey("xId")]
的属性。这些类如下,我尝试模拟这个X类。
但是我得到一个错误
“ System.NotSupportedException:'在非虚拟环境上的无效设置 (在VB中可重写)成员:模拟=>模拟.SubX'“
。
任何人都知道模拟这种属性的最佳方法是什么?
public abstract class X
{
[ForeignKey("xId")]
public SubX SubX {get; set;}
}
public class SubX
{
[Key]
public int Id {get; set;}
}
var mockedX = Mock.Of<X>(a => a.SubX.Id == 10);
答案 0 :(得分:1)
使用从X继承的非抽象类:
class XMock : X
{
}
var mockedX = new XMock();