unit-testing - 是否应该覆盖等于在单元测试中断言对象相等的方法?

标签 unit-testing equals assert assertions

假设我们通过断言结果对象的所有属性与预期结果对象的属性相等来测试方法的结果。我们是否应该实现 equals 方法并使用 Assert.AreEqual(expectedResult, actualResult)... 但是 equals 在生产代码中可能意味着不同的东西。

哪个是最佳实践?

  • 通过重写的 equals 方法断言对象的相等性

  • 或者
  • 断言所有属性的相等性
  • 最佳答案

    我一方面使用自定义断言。主要原因有两个:

  • 不要将测试问题强制投入生产。这意味着 equals 的含义在测试方法中可能与生产代码的含义不一致;
  • 对于所有测试,equals 可能不够好。不同的测试需要不同的断言,所以你最终可能会使用自定义断言。
  • 关于unit-testing - 是否应该覆盖等于在单元测试中断言对象相等的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1180044/

    相关文章:

    c# - Controller 上下文的单元测试空引用异常

    java - 如何使用 junit 测试将元素添加到数组列表

    javascript - 在 Jest 中,定义全局变量和在 BeforeAll 中定义一样吗?

    python - 如何对方法对象中的方法进行单元测试?

    java - 使用 hashCode 实现 equals 不行吗?

    java - 使用列表的一部分进行比较时的自定义 hashCode

    Java 对象.等于

    java - 使用断言检查元素是否在屏幕上,发生 NoSuchElementException

    typescript 检查类型 A === 类型 B | C型

    python - 测试带有 float 的元组的断言