with verifiable unit tests setup property objetos mock and c# .net mocking moq

c# - verifiable - verify moq



Pasar Moq-objetos a constructor (2)

He estado usando RhinoMocks por un buen tiempo, pero solo 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 donde necesito simular el IBar que se envía a Foo. En RhinoMocks simplemente lo haría de la siguiente manera, y funcionaría genial:

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?


Necesitas pasar a través de la instancia del objeto del simulacro

var mock = new Mock<IBar>(); var foo = new Foo(mock.Object);

También puede usar el objeto simulado para acceder a los métodos de la instancia.

mock.Object.GetFoo();

documentos moq


var mock = new Mock<IBar>().Object