我想知道是否有人找到了一个很好的解决方案:
在我们的单元测试中;我们通常使用 Assert.AreEqual()
来验证我们的结果。一切都很好;直到我们开始尝试在 DateTime 属性上使用它。
虽然时间非常相似,但有时会相差毫秒,导致测试失败。在我们的申请中;只要它们精确到秒;这对我们来说已经足够了。
在这种情况下,有人找到以某种方式实现公差的好方法吗?通常我们的解决方法是将其拆分为 2 个单独的语句;一个检查 .ToShortDateString()
,另一个检查 .ToShortTimeString()
,但在我看来这看起来很草率。
最佳答案
使用Assert.That 和Is.Equal 约束代替Assert.AreEqual。下面是 Nunit 网站本身的代码示例
DateTime now = DateTime.Now;
DateTime later = now + TimeSpan.FromHours(1.0);
Assert.That(now, Is.EqualTo(now) );
Assert.That(later, Is.EqualTo(now).Within(TimeSpan.FromHours(3.0)));
Assert.That(later, Is.EqualTo(now).Within(3).Hours);
关于c# - NUnit Assert.AreEqual 日期时间公差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577856/