是否有可能将Moq对象传递给c#类构造函数?

本文关键字:构造函数 有可能 Moq 对象 是否 | 更新日期: 2023-09-27 18:13:20

我有一个MyClass类,它在构造函数中接收一个TheirClass的实例。MyClass在MyMethod函数中使用实例的属性值,如下所示

public  class MyClass
{
  ITheirClass theirClass;
 public MyClass( ITheirClass TheirClass)
   {
    theirClass =TheirClass;
   }
  public MyMethod ()
   {
      if (theirClass.TheirProperty) return;
   }
}

我想为MyClass和MyClass创建一个单元测试。MyMethod函数。我创建了一个像这样的Moq对象

 var MoqTheirClass = new Mock<ITheirClass>();
 MoqTheirClass.SetupGet(p => p.TheirProperty).Returns(false);

但是,MoqTheirClass对象不能转换为ITheirClass类型,我不能将它传递给MyClass构造函数。

问题是我如何用预设的TheirClass创建一个Moq TheirClass对象。他们的属性值并传递给MyClass构造函数?

还有其他方法来单元测试MyClass吗?MyMethod函数?

是否有可能将Moq对象传递给c#类构造函数?

您需要像这样从MoqTheirClass对象传入Object属性:

MyClass myClass = new MyClass(MoqTheirClass.Object);