FluentAssertion 在 Mongo 日期时间比较时失败

FluentAssertion failing on Mongo DateTime comparisons

我有一个单元测试使用 FluentAssertion 类似这样:

var instance = new ServiceInstance(name, "1.0.0", new Uri("http://www.google.com"));

var id = registry.RegisterInstance(instance);
registry.ExistsInstance(id).Should().BeTrue();

var queryiedInstance = registry.QueryForInstance(id);
queryiedInstance.ShouldBeEquivalentTo(instance);

最新断言失败并显示以下消息:

Result Message: 
Expected member RegistrationData.RegistrationTime to be <2015-10-13 08:36:20.619>, but found <2015-10-13 08:36:20.619>.
Expected member RegistrationData.LastActivationTime to be <2015-10-13 08:36:20.619>, but found <2015-10-13 08:36:20.619>.
Expected member RegistrationData.LastPinged to be <2015-10-13 08:36:20.619>, but found <2015-10-13 08:36:20.619>.

如您所见,FluentAssertion 报告相同的日期时间,但仍然失败。

在那种特定情况下,我的注册表后端是 Mongo我通过 the latest C# driver 访问的数据库。但是,它可以使用特定断言不会失败的其他后端(例如 Zookeeper 或 Consul)。

所以我的猜测是问题来自 Mongo C# 驱动程序而不是 FluentAssertion。我在 Mongo 中使用了一些 DateTime 序列化选项(我到处都使用 UTC,这似乎也是 Mongo 的默认设置),但没有成功。知道哪里出了问题吗?

感谢您的帮助。

我怀疑这两个 DateTime 实例的滴答声不同。如果是这样,您可以使用 specific DateTime 断言 BeCloseTo.

解决此问题