我正在尝试比较 2 个对象expectedItems和resultItems类型IEnumerable<IDictionary<string, object>>
,但无法用它做很多事情。
此外,一个字典在代码中初始化,另一个字典是从外部 API 的 JSON 响应构建的。由于 JSON 并不真正关心对象内属性的顺序,SequenceEquals
因此排除了 a。
我确实有两个相等的对象,所有这些低调的方法都失败了,
首先,
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 字典中的时间戳,然后进行比较?因此,集合必须相同,并且需要覆盖时间戳的比较。任何人?