2012-05-08 63 views
8

可能重复:
How to mock a method that returns an int with MOQ使用起订量存根接口方法

这里是我的界面:

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

我做了一些研究,似乎可以嘲笑这真的很容易,但我想使用Moq将其存根出来,这样我就可以将存根传递到其他类的构造函数中并让存根返回DateTime我想要的Adjust方法。

这样做最简单的方法是什么?

编辑:我知道我可以在我的项目中创建自己的存根,但我想写更少的代码,我认为Moq可以让我这样做,我只是不知道语法是什么样子。

+0

我不认为这个问题是重复的。另一个问题中的例子有一个无参数方法,但是这个接口上的方法公开了三个需要被模拟的参数。 –

回答

14

设置存根这样的:

var calendarServiceStub = new Mock<ICalenderService>(); 

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

通行证calendarServiceStub.Object其他类的构造函数。

+0

非常感谢你! – slandau