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

spi*_*dal 17 unit-testing assert equals assertions

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

哪种是最佳做法?

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

要么

  • 断言所有属性的相等性

Rob*_*anu 21

我一个人使用自定义断言.主要有两个原因:

  • 不要强迫测试问题进入生产.这意味着equals测试方法的含义可能与生产代码的含义不一致;
  • 对于所有测试,equals可能不够好.不同的测试需要不同的断言,因此您最终可能会使用自定义断言.