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