如何使用 FluentAssertions 中的 BeEquivalentTo 比较两个简单的字典?

问题描述

我创建了以下非常简单的测试,它简化了我在野外遇到的场景。

var actual = new JObject
{
    {"prop1","1"},{"prop2","2"},};

var expected = new JObject
{
    {"prop1","3"},};

actual.Should().BeEquivalentTo(expected);
           

我有两个 JObjects,它们在一个键上不同,如果它们不同,我希望测试失败并告诉我区别在哪里。

这通过了,但由于我已经提到的差异,我不希望它通过。我花了很多时间来定制等效性检查,但没有运气。希望有人能指出我忽略的内容

解决方法

您还可以断言整个字典的相等性,其中键和值的相等性将使用它们的 Equals 实现进行验证。

参考FluentAssertions - Dictionaries

喜欢

actual.Should().Equal(expected);