使用MOQ模拟构造函数

Eli*_*eth 9 c# moq

我有一个B类,其构造函数参数类型为Class A.

我希望当我为B类创建一个模拟时,类A被模拟了.

我怎样才能做到这一点?我试过MockBehavior Loose/Strict,但这没有用!

nem*_*esv 18

如果您正在模拟类,则可以在调用时传递构造函数参数new Mock<T>:

所以,如果你有这些课程:

public class A {}

public class B
{
    private readonly A a;

    public B(A a) { this.a = a; }
}
Run Code Online (Sandbox Code Playgroud)

以下代码使用模拟A创建模拟B:

var mockA = new Mock<A>();
var mockB = new Mock<B>(mockA.Object);
Run Code Online (Sandbox Code Playgroud)