如何使用Moq有能力使用模拟对象的方法操作

本文关键字:对象 方法 操作 模拟 何使用 Moq 有能力 | 更新日期: 2023-09-27 18:13:38

我有一个实例化的构造函数在测试:

public class Car{
public string Method()
{
 return "test";
}
}
private readonly ICar _classUnderTest;
    public CarTests()
    {
        var collaboratingClass = new CollaboratingClass();
        _classUnderTest = new Car(collaboratingClass );
    }

如果我使用moq并像这样传递模拟实例:

    var collaboratingClass = new Mock<ICollaboratingClass>();
    _classUnderTest = new Car(collaboratingClass .Object);

…那么我就不能调用方法了。这个模拟实例中的方法没有被调用,所以我不能用它进行计算。如何使我的模拟对象能够访问方法并对模拟对象进行操作?

正如你所看到的,我不想在这里有具体的依赖

如何使用Moq有能力使用模拟对象的方法操作

您可以假装返回到您的模拟类方法。如果您需要依赖项中的行为,则它不再是单元测试