0

在 BDD 测试中,我正在比较日期。当比较日期在字符串中时。即使认为两个日期都相同,我也收到此消息并且测试失败

预期对象为“01/20/2012 12:00:00 AM”,但发现“1/20/2012 12:00:00 AM”。

还有一件事是这发生在我的系统上。如果我让另一个开发人员运行测试,测试就会通过。是否存在我缺少的某种类型的设置?

它的代码部分是

            customer["DateOfBirth"].Should().Be(Helper.DateOfBirth.ToString());

其中客户是一个哈希表。这个特定的语句在其他机器上通过了,但不是我的。

我知道我可以通过更改为日期比较而不是字符串比较来修复它。但我很好奇,因为这在其他机器上很好。

4

2 回答 2

6

在 BDD 测试中,我正在比较日期。当比较日期在字符串中时。

那听起来像你的问题。我的猜测是,您正在将默认文化中格式化的日期与其他文化中手动格式化的日期进行比较。

解决方案是执行与DateTime值的比较,而不是依赖于格式化的值。如果它们不同,则允许测试运行器格式化这两个值。

于 2012-10-30T14:47:05.727 回答
3

日期的格式不同——一个有一个前导 0。

您应该将它们的格式设置为相同,或者直接比较实际DateTime值。

于 2012-10-30T14:47:07.070 回答