繁体   English   中英

FluentAssertion在Mongo DateTime比较中失败

[英]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报告相同的日期时间,但是失败。

在这种情况下,我的注册表后端是MongoDB,可以通过最新的C#驱动程序进行访问。 但是,它可以使用特定断言不会失败的其他后端(例如,Zookeeper或Consul)。

所以我的猜测是问题出在Mongo C#驱动程序而不是FluentAssertion。 我在Mongo中使用了DateTime序列化选项(我在所有地方都使用UTC,而且似乎也是Mongo的默认设置),但没有成功。 有什么问题的想法吗?

谢谢你的帮助。

我怀疑这两个DateTime实例的刻度不同。 如果是这样,则可以通过使用特定的 DateTime断言BeCloseTo来解决此BeCloseTo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM