【问题标题】:FluentAssertions check that object fields not equal?FluentAssertions 检查对象字段不相等?
【发布时间】:2018-10-15 11:13:42
【问题描述】:

FluentAssertions 中检查两个对象是否不等价的最佳方法是什么,如果该类没有实现 Equals 并且我想通过反射进行逐个字段比较?基本上我想要Should().BeEquivalentTo() 的反义词,它是为所有对象定义的。 为集合定义了NotBeEquivalentTo,但我的对象不是集合。

我不想要NotBeNotBeSameAs,因为一个调用Equals 而另一个检查引用。我需要行为与BeEquivalentTo 完全相同的东西。开始思考我可能不得不编写自己的扩展方法并使用 BeEquivalentTo 并期望它失败。

【问题讨论】:

  • this 可以接近您正在寻找的内容吗?
  • 只是好奇,什么情况下您不关心确切的结果,而只是期望值应该不同?
  • 方法从内容管理站点返回表示 PDF 文件的字节数组。如果找不到文件,它会返回标准的“抱歉,找不到您的内容”,但会格式化为 PDF 文件。所以我有代表未找到文件的确切字节数组。如果我希望找到一些东西,我想断言字节数组与“未找到”字节数组不匹配。

标签: c# .net unit-testing fluent-assertions


【解决方案1】:

我们没有 .NotBeEquivalentTo 流利的断言, 因为这不清楚检查是否所有字段都不能等于断言,或者是否只有一个字段不等于断言被批准。 所以最好为你吸引人的结果写一个扩展。

【讨论】:

  • 现在我发现fluent assertion从上面的5.7版本中添加了NotBeEquivalentTo。这意味着您不需要编写扩展程序。
猜你喜欢
  • 2020-11-09
  • 2022-03-23
  • 2012-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多