我是MOQ的新手,对于setup方法有点困惑。下面的例子展示了一个我需要测试的方法。被测试的方法返回两个日期中的最新时间,所以我创建了两个datetime对象并将它们传递给我的函数。我困惑的部分是returns调用。这忽略了我的方法中的逻辑并返回我告诉它的内容。例如,如果我说returns(date2),那么无论逻辑如何,assert都会通过。我做错了什么吗?
public virtual DateTime LatestTime(DateTime t1, DateTime t2)
{
if (t1.CompareTo(t2) > 0)
return t1;
return t2;
}
[Test]
[Category("Catalogue service")]
public void TestLatestTimeReturnsCorrectResult()
{
//Arrange
DateTime date1 = new DateTime(2014, 07, 25, 13, 30, 01);
DateTime date2 = new DateTime(2014, 07, 25, 13, 30, 00);
MockCatalogueService.Setup(x => x.LatestTime(date1, date2)).Returns(date2);
//Act
DateTime retDate = MockCatalogueService.Object.LatestTime(date1, date2);
//Assert
Assert.That(retDate == date2);
}