Pasar objetos simulados Moq al constructor
He estado usando RhinoMocks durante un buen tiempo, pero recién comencé a buscar en Moq. Tengo este problema muy básico, y me sorprende que esto no salga de la caja. Supongamos que tengo la siguiente definición de clase:
public class Foo
{
private IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
..
}
Ahora tengo una prueba en la que necesito burlarme del IBar que se envía a Foo. En RhinoMocks simplemente lo haría de la siguiente manera, y funcionaría de maravilla:
var mock = MockRepository.GenerateMock<IBar>();
var foo = new Foo(mock);
Sin embargo, en Moq esto no parece funcionar de la misma manera. Estoy haciendo lo siguiente:
var mock = new Mock<IBar>();
var foo = new Foo(mock);
Sin embargo, ahora falla, diciéndome "No se puede convertir de 'Moq.Mock' a 'IBar'. ¿Qué estoy haciendo mal? ¿Cuál es la forma recomendada de hacer esto con Moq?