Я давно использую RhinoMocks, но только начал изучать Moq. У меня очень простая проблема, и меня удивляет, что она не вылетает сразу из коробки. Предположим, у меня есть следующее определение класса:
public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
..
}
Теперь у меня есть тест, в котором мне нужно имитировать IBar, отправляемый в Foo. В 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?