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
.
解决此问题
我有一个单元测试使用 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
.