Mock.Of <foo>设置带参数的方法调用的返回

时间:2015-09-25 22:03:51

标签: c# linq moq

试图找出如何使用Linq to Mock设置具有参数的方法

Mock.Of<foo>(f=> f.Method(It.IsAny<DateTime>(), It.IsAny<DateTime>()) ==
        Func<DateTime,DateTime,List<DateTime> = (date1,date2){ /*stuff*/ });
类似的东西,尝试了一些变化,并在网上挖掘。我是知己,我以前做过这件事,但因为我的生活找不到我所遗忘的东西。

1 个答案:

答案 0 :(得分:1)

使用Moq,假设你的界面是这样的:

interface foo 
{ 
    List<DateTime> Method(DateTime date1, DateTime date2); 
}

我认为您正在寻找设置模拟的语法是

var bar = new Mock<foo>();
bar.Setup(f => f.Method(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
   .Returns<DateTime,DateTime>((date1, date2) => new List<DateTime> { date1, date2 });

修改

在搜索之后,我found this我认为其他语法我认为是您正在寻找的:

var bar = Mock.Of<foo>();
Mock.Get(bar).Setup(f => f.Method(It.IsAny<DateTime>(), It.IsAny<DateTime>()))
   .Returns<DateTime,DateTime>((date1, date2) => new List<DateTime> { date1, date2 });