【发布时间】:2021-08-15 03:01:59
【问题描述】:
我是 MOQ 新手,我对设置方法有点困惑。下面的示例显示了我需要测试的一种方法。被测方法返回两个日期的最新时间,因此我创建了两个 datetime 对象并将它们传递给我的函数。我感到困惑的部分是返回调用。这忽略了我的方法中的逻辑并返回我告诉它的内容。例如,如果我说返回(date2),那么无论逻辑如何,断言都会通过。我是不是做错了什么?
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);
}
【问题讨论】:
标签: c# unit-testing mocking moq