NUnit Assert.AreEqual双变量与delta参数-编译器认为我想要int比较

本文关键字:编译器 我想要 比较 int 参数 AreEqual Assert 变量 delta NUnit | 更新日期: 2023-09-27 18:00:10

使用delta参数和错误消息对两个不同日期的tick进行比较时,没有编译,看起来它认为我在寻找不同的重载方法。我也尝试过没有错误的消息,类似的:预期的int,int,字符串问题。

Assert.AreEqual((双)data.LastModified.Ticks,(双)DateTime.UtcNow.Ticks,30000000M,"上次修改未设置");

我会使用重载#9或#16(带有错误消息),但编译器认为我想要int, int, string, object签名。

有什么想法吗?

NUnit Assert.AreEqual双变量与delta参数-编译器认为我想要int比较

我不清楚这里的示例中的"数据"是什么,但以下是我将如何比较记号。

DateTime data= new DateTime(2014,12,23);
DateTime data2 = new DateTime(2014, 12, 24);
Assert.AreEqual((double)data.Ticks,(double)data.Ticks,(double)3000M, "msg 1");
Assert.AreEqual((double)DateTime.Today.Ticks,(double)DateTime.UtcNow.Ticks, (double)300000M, "msg 2")

Delta param必须是双精度才能工作。

不过,我根本不会用替身来达到这个目的。相反,我会做

Assert.That(data, Is.EqualTo(data2).Within(3000).Ticks);

它使代码更容易理解。