【发布时间】:2013-10-09 18:27:45
【问题描述】:
我正在尝试比较类型为 IEnumerable<IDictionary<string, object>> 的 2 个对象 expectedItems 和 resultItems,但没有做太多事情。
此外,一个字典在代码中初始化,另一个字典是从外部 API 的 JSON 响应构建的。由于 JSON 并不真正关心对象内属性的顺序,因此排除了 SequenceEquals。
我确实有两个相等的对象,但所有这些低调的方法都失败了,
首先,
CollectionAssert.AreEqual(expectedItems, resultItems)
第二,
var expectedItems = entries.Select(e => e.Serialize()).ToList();
resultItems.Zip(expectedItems,(objects, dictionary) =>
objects.OrderBy(pair =>pair.Key).SequenceEqual(dictionary.OrderBy(pair => pair.Key)))
.Should()
.NotContain(false);
对象(据我所知)是相等的。
我可以尝试什么,或者我目前做错了什么?
编辑
API 会从时间戳中剔除滴答计数,这就是失败的原因。 如何修剪 expectedItems 字典中的时间戳,然后进行比较?因此,集合必须相同,并且需要覆盖时间戳的比较。有人吗?
【问题讨论】:
标签: c# dictionary fluent-assertions