在抽象类模拟中将带有[Key]的属性包括在内

时间:2019-01-22 12:32:43

标签: c# moq xunit

我正在尝试模拟(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);

1 个答案:

答案 0 :(得分:1)

使用从X继承的非抽象类:

class XMock : X
{
}

var mockedX = new XMock();