为什么datetime无法比较?

5Yr*_*DBA 41 c# unit-testing datetime-comparison

我的C#单元测试有以下声明:

Assert.AreEqual(logoutTime, log.First().Timestamp);
Run Code Online (Sandbox Code Playgroud)

为什么它失败了以下信息:

Assert.AreEqual failed. Expected:<4/28/2010 2:30:37 PM>. Actual:<4/28/2010 2:30:37 PM>.
Run Code Online (Sandbox Code Playgroud)

他们不一样吗?

更新:

如果您只关注第二个,请使用此选项:

Assert.AreEqual(logoutTime.ToString(), log.First().Timestamp.ToString());

Din*_*nah 42

您是否验证过滴答/毫秒数是否相等?

如果你DateTime.Now()背靠背做两次,它们看起来是相同的数字,直到分钟,甚至可能低到第二,但它们通常会以刻度变化.如果要仅检查相等的分钟,请将每个DateTime仅与该度数进行比较.有关舍入DateTimes的信息,请参阅此处


关于决议的说明:

Now属性经常用于衡量性能.但是,由于其分辨率低,因此不适合用作基准测试工具.更好的选择是使用秒表类.