FluentAssertions - 如何排除字典键的比较?

时间:2018-03-23 10:31:56

标签: key-value keyvaluepair fluent-assertions

使用Should().BeEquivalentTo()我想比较包含一系列键值对的2个对象,但要排除键的实际值,因为这会有所不同。所以基本上我只对比较值的内容感兴趣。 例如:

MyObject { MyDictionary1 { Key, Value } ... MyDictionary2 { Key, Value } }

相比
ExpecterdObject { ExpectedDictionary1 { Key, Value } ... ExpectedDictionary2 { Key, Value } }

2个对象属于同一个类,具有相同的结构,但每个实例都有唯一的id作为键。

我已经尝试了

.Excluding(e => e.KayValuePair.Keys)

这似乎不起作用,因为我仍然会错误地说

  

预期成员MyDictionary1是一个包含3个项目的集合。预期   成员MyDictionary1包含键X。

1 个答案:

答案 0 :(得分:3)

如果您有.action-item li{ background-image: url(https://cdn0.iconfinder.com/data/icons/clipboard-1/100/clipboard-10-512.png); background-position: 15px 0px; background-repeat: no-repeat; background-size: 1.4em; }之类的对象结构,并且想要覆盖MyClass两个实例之间Dictionary属性的比较方式。即只比较MyClass字典。

Values

为此,您可以使用documentationclass MyClass { public int Value { get; set; } public Dictionary<int, string> Dictionary1 { get; set; } public Dictionary<int, string> Dictionary2 { get; set; } } Using的组合。

以下是您的案例的完整示例,其中词典具有相同的WhenTypeIs,但Values不同。

Keys