c# - NUnit Assert.AreEqual 日期时间公差

标签 c# .net-3.5 nunit

我想知道是否有人找到了一个很好的解决方案:

在我们的单元测试中;我们通常使用 Assert.AreEqual() 来验证我们的结果。一切都很好;直到我们开始尝试在 DateTime 属性上使用它。

虽然时间非常相似,但有时会相差毫秒,导致测试失败。在我们的申请中;只要它们精确到秒;这对我们来说已经足够了。

在这种情况下,有人找到以某种方式实现公差的好方法吗?通常我们的解决方法是将其拆分为 2 个单独的语句;一个检查 .ToShortDateString(),另一个检查 .ToShortTimeString(),但在我看来这看起来很草率。

最佳答案

使用Assert.ThatIs.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/

相关文章:

c# - C# 中两个单元测试之间的依赖关系

c# - Nunit Selenium 具有值的并行测试

c# - 取决于 viewmodel 定义的按钮数量的对话框窗口

unit-testing - 在测试用例中包含预期结果是一种好习惯吗?

c# - Azure 中的 SqlBulkCopy 超时

c# - LINQ 等于 - 它在幕后调用什么?

c# - 如何扩展 .Net 中的内置配置提供程序以添加自定义存储?

C# COM 类 - DISP_E_UNKNOWNNAME

c# - 这个 linq 会显示最新日期的对象吗?

c# - 在 C# 中调用 showdialog 时出现 Threadabortexception