Svi*_*ish 16 c# datetime nunit unit-testing
说我有这个测试:
[Test]
public void SomeTest()
{
var message = new Thing("foobar");
Assert.That(thing.Created, Is.EqualTo(DateTime.Now));
}
Run Code Online (Sandbox Code Playgroud)
例如,这可能使Thing的构造函数失败了一段时间.是否有某种NUnit构造允许我指定Created时间不必完全相等DateTime.Now,只要它例如在一秒之内?
是的,我知道构造函数不应该花费太多时间,但仅作为一个例子:p
Jon*_*eet 36
我没有尝试过,但根据文档看起来这应该工作:
Assert.That(thing.Created, Is.EqualTo(DateTime.Now).Within(1).Minutes);
Run Code Online (Sandbox Code Playgroud)
我不能说我通常很喜欢约束系统 - 我是Assert.AreEqual粉丝 - 但这个特殊的构造相当简洁.
(作为一个原则,我应该注意你最好通过某种"时钟"接口作为依赖,然后你就不会有任何不准确.你可以伪造它进行测试,并使用系统时钟用于生产.)
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |