是否可以将 Moq 对象传递给 C# class 构造函数?
Is it possible to pass a Moq object to a C# class constructor?
我有 MyClass class,它在构造函数中接收 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.TheirProperty 值创建 Moq TheirClass 对象并将其传递给 MyClass 构造函数?
还有其他方法可以对MyClass.MyMethod函数进行单元测试吗?
您需要像这样从 MoqTheirClass
对象传入 Object
属性:
MyClass myClass = new MyClass(MoqTheirClass.Object);
我有 MyClass class,它在构造函数中接收 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.TheirProperty 值创建 Moq TheirClass 对象并将其传递给 MyClass 构造函数?
还有其他方法可以对MyClass.MyMethod函数进行单元测试吗?
您需要像这样从 MoqTheirClass
对象传入 Object
属性:
MyClass myClass = new MyClass(MoqTheirClass.Object);