字符串日期比较

时间:2012-10-30 14:45:23

标签: c# .net fluent-assertions

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

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

还有一件事发生在我的系统上。如果我要求其他开发人员进行测试,测试通过正常。我缺少某种类型的设置吗?

它的代码部分是

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

客户是哈希表。这个特殊声明在其他机器上传递OK,但不是我的。

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

2 个答案:

答案 0 :(得分:6)

  

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

那听起来像是你的问题。我猜你是在比较默认文化中格式化的日期和其他文化中手工格式化的日期。

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

答案 1 :(得分:3)

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

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