我使用RhinoMock已经有一段时间了,但我才刚刚开始研究Moq.我有一个非常基本的问题,让我惊讶的是这不是开箱即用的飞翔.假设我有以下类定义:
public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
..
}
现在我有一个测试,我需要模拟发送到foo的ibar.在RhinoMock中,我只需如下所示,它将非常有效:
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做什么?