如何为时间敏感常数编写单元测试

时间:2011-10-05 13:24:11

标签: c# unit-testing

这可能是一个明显的答案,但我无法弄清楚如何最好地为以下内容创建单元测试:

Assert.AreEqual(27, AgeCalculator.GetAge(new DateTime(1983, 10, 6))); // this test will fail tomorrow
Assert.AreEqual(26, AgeCalculator.GetAge(new DateTime(1984, 11, 14)));
Assert.AreEqual(9, AgeCalculator.GetAge(new DateTime(2002, 05, 7)));
Assert.AreEqual(7, AgeCalculator.GetAge(new DateTime(2003, 11, 03)));
Assert.AreEqual(4, AgeCalculator.GetAge(new DateTime(2007, 05, 10)));

我创建了一个GetAge()方法,我想要一个测试,以确保将来对该方法的任何更改都可以。

2 个答案:

答案 0 :(得分:2)

看看following blog post,它是一个很好的series of posts的一部分,用于测试非决定论。

答案 1 :(得分:1)

我会在AgeCalculator内部模拟日期时间对象,以便它始终使用相同的测试日期。