我想断言两个 dto 列表的内容是等价的。但是,我希望在比较中忽略每个项目的一个属性。通过阅读Fluent Assertions 文档的 collections & dictionaries 小节,我的理解是这条线应该做我想做的事:
response.ShouldAllBeEquivalentTo(expected, options => options.Excluding(activity => activity.ActivityDetails.InternalId));
我编写了一个应该通过的单元测试,但是这个语句导致 AssertionException 被抛出,并带有以下消息:
预期 item[0].ActivityDetails.InternalId 为 0,但找到 19372。
预期 item[1].ActivityDetails.InternalId 为 0,但找到 19374。
预期 item[2].ActivityDetails.InternalId 为 0,但找到 19376。
带配置:
选择所有声明的属性
排除属性 ActivityDetails.InternalId
按名称匹配属性(或抛出)
info.RuntimeType.IsSameOrInherits(System.String) 时调用 Action
我可能误解了文档。谁能指出我做错了什么?