【发布时间】:2012-10-19 22:32:15
【问题描述】:
在 BDD 测试中,我正在比较日期。当比较日期在字符串中时。即使认为两个日期相同,我也收到此消息并且测试失败
应为“01/20/2012 12:00:00 AM”的对象,但发现“1/20/2012 12:00:00 AM”。
还有一件事是这发生在我的系统上。如果我让另一个开发人员运行测试,测试就会通过。是否有我遗漏的某种类型的设置?
其中的代码部分是
customer["DateOfBirth"].Should().Be(Helper.DateOfBirth.ToString());
customer 是一个哈希表。这个特定的语句在其他机器上通过 OK,但不是我的。
我知道我可以通过更改为日期比较而不是字符串比较来修复它。但我很好奇,因为这在其他机器上很好。
【问题讨论】:
-
我想问题出在你的代码上。我不得不想象,因为你实际上并没有向我们展示任何东西。
-
如果问题出在代码上,它应该不能在另一台机器上正常运行,对吗?
-
如果您将日期作为字符串进行比较,那么您作为字符串列出的日期是不一样的。您应该转换为 DateTimes 然后进行比较。
-
@katie77:不,这不是一个有效的假设。您的代码可能是特定于文化的 - 因此默认情况下可以在使用一种文化的计算机上运行,但不能在其他计算机上运行。
标签: c# .net fluent-assertions