假设我有这个测试:
[Test]
public void SomeTest()
{
var message = new Thing("foobar");
Assert.That(thing.Created, Is.EqualTo(DateTime.Now));
}
例如,这可能会使 Thing 的构造函数失败,这会花费一些时间。是否有某种 NUnit 构造允许我指定 Created
时间不必完全等于DateTime.Now
,只要它在一秒之内?
是的,我知道构造函数不应该花费太多时间,但只是作为一个例子:p
最佳答案
没试过,但根据the docs看起来这应该可行:
Assert.That(thing.Created, Is.EqualTo(DateTime.Now).Within(1).Minutes);
我不能说我通常是约束系统的忠实拥护者 - 我是 Assert.AreEqual
的忠实拥护者 - 但那个特定的构造相当简洁。
(作为原则,我应该指出,您最好将某种“时钟”接口(interface)作为依赖项传递进来,这样就不会有任何不准确之处。您可以为测试伪造它,并使用系统时钟进行生产。)
关于C#,NUnit : Is it possible to test that a DateTime is very close, 但不一定等于另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792817/