【问题标题】:Is it possible to pass a Moq object to a C# class constructor?是否可以将 Moq 对象传递给 C# 类构造函数?
【发布时间】:2015-09-18 16:16:05
【问题描述】:

我有 MyClass 类,它在构造函数中接收TheyClass 的实例。 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 构造函数。

问题是如何使用预设的TheyClass.TheirProperty 值创建 MoqTheyClass 对象并将其传递给 MyClass 构造函数?

还有其他方法可以对 MyClass.MyMethod 函数进行单元测试吗?

【问题讨论】:

    标签: c# class unit-testing constructor moq


    【解决方案1】:

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

    MyClass myClass = new MyClass(MoqTheirClass.Object);
    

    【讨论】:

      猜你喜欢
      • 2011-10-24
      • 2014-06-04
      • 2021-05-08
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多