2009-01-29 10 views
16

Estamos utilizando Rhino Mocks para realizar algunas pruebas unitarias y necesitamos simular dos interfaces. Solo se implementa una interfaz en el objeto y la otra se implementa dinámicamente utilizando un enfoque orientado a aspectos. ¿Existe una manera fácil de combinar las dos interfaces dinámicamente para que se pueda crear un simulacro y los métodos stubbed para ambas interfaces?¿Cómo combino dos interfaces al crear simulaciones?

Respuesta

3

Un simulacro con múltiples interfaces utilizando Rhino Mocks se puede generar de este modo:

var mocker = new MockRepository(); 
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar)); 
mocker.ReplayAll(); 
+2

nota que 'ReplayAll' es un [estilo obsoleto de Rhino Mocks] (http://stackoverflow.com/questions/6078061/what-is-replayall-and-verifyall-in-rhinomocks) – Default

11

No es dinámica, pero ciertamente fácil: crear una interfaz dentro de su ensamblaje prueba que no hace nada que no sea la aplicación de las otras dos interfaces:

internal interface ICombined : IFirstInterface, ISecondInterface {} 

Entonces burlarse ICombined.

14

Usando Rhino Mocks

var mock = MockRepository.GenerateMock<IFirst, ISecond>(); 
mock.Stub(m => m.FirstProperty).PropertyBehavior(); 
((ISecond)mock).Stub(k=> k.SecondProperty).PropertyBehavior(); 

encontrado y utilizado la información de http://www.richard-banks.org/2010/08/mocking-comparison-part-11-multiple.html

+3

si otro tropieza con t el suyo, tenga en cuenta que es Generate ** Mock ** y no 'GenerateStub'. La versión del código auxiliar no tiene múltiples argumentos de tipo. – Default

Cuestiones relacionadas