我已经使用 RhinoMocks 有一段时间了,但刚刚开始研究起订量。我有一个非常基本的问题,令我惊讶的是,这并没有立即可用。假设我有以下类定义:
public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
..
}
现在我有一个测试,我需要模拟发送到 Foo 的 IBar。在 RhinoMocks 中,我只需像下面那样做,它会工作得很好:
var mock = MockRepository.GenerateMock<IBar>();
var foo = new Foo(mock);
然而,在 Moq 中,这似乎并不以同样的方式工作。我正在做如下:
var mock = new Mock<IBar>();
var foo = new Foo(mock);
然而,现在它失败了 - 告诉我“无法从 'Moq.Mock' 转换为 'IBar'。我做错了什么?使用 Moq 执行此操作的推荐方法是什么?
您需要传递mock的对象实例
var mock = new Mock<IBar>();
var foo = new Foo(mock.Object);
您还可以使用模拟对象来访问实例的方法。
mock.Object.GetFoo();
moq docs https://github.com/Moq/moq4/wiki/Quickstart
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)