2012-05-08 6 views
8

Duplicar posibles:
How to mock a method that returns an int with MOQUsando Moq a stub un método de interfaz

Aquí es mi interfaz:

public interface ICalenderService 
    { 
     DateTime Adjust(DateTime dateToAdjust, BusinessDayConvention convention, List<HolidayCity> holidayCities); 
    } 

que he hecho algunas investigaciones y parece que se puede se burla de esto muy fácilmente, pero quiero rescindirlo usando Moq para poder pasar el stub a mis otros constructores de clase y hacer que el stub devuelva lo que DateTime quiero para su método Adjust.

¿Cuál es la forma más fácil de hacer esto?

Editar: Sé que puedo crear mi propio código auxiliar en mi proyecto, pero me gustaría escribir menos código, y creo que Moq me puede dejar hacer eso, simplemente no sé cómo es la sintaxis.

+0

No creo que esta pregunta sea un duplicado. El ejemplo en la otra pregunta tiene un método sin parámetros, pero el método en esta interfaz expone tres parámetros que deberían ser objeto de burla. –

Respuesta

14

Configure el talón de la siguiente manera:

var calendarServiceStub = new Mock<ICalenderService>(); 

calendarServiceStub 
    .Setup(c => c.Adjust(It.IsAny<DateTime>(), It.IsAny<BusinessDayConvention>(), It.IsAny<List<HolidayCity>>())) 
    .Returns(theDateTimeResultYouWant); 

Pass calendarServiceStub.Object al constructor de la otra clase.

+0

muchas gracias! – slandau

Cuestiones relacionadas