【问题标题】:What is the usage of Assert.Equals? [closed]Assert.Equals 的用途是什么? [关闭]
【发布时间】:2013-04-01 18:42:09
【问题描述】:

我正在为我当前的项目进行单元测试,但遇到了一些奇怪的事情。 .Net UnitTesting 库同时具有 Assert.Equals 和 Assert.AreEqual。 Assert.Equals 的remarks 说要使用 Assert.AreEqual 来比较两个对象,但没有说明为什么要在 Assert.Equals 上这样做。有人可以解释一下何时应该在单元测试中使用 Assert.Equals(如果有的话)以及 Assert.Equals 和 Assert.AreEqual 之间的区别吗?

【问题讨论】:

  • 你首先明白Assert.Equals是什么意思吗?它会检查以确保 2 objects are Equal?' makes Objects Nullable`,例如,如果您使用诸如 DateTime, int 之类的东西并尝试设置诸如 var myInt = null 之类的东西;它会失败,但设置 var myInt? = null; 将使整数可以为空,这应该会引导您回答自己的问题
  • 更重要的是,我认为您应该询问何时使用 .Equals== 有区别。一个检查 objects 而另一个检查 values
  • 是的,我知道 .Equals 与 ==,我没有建立 Assert.Equals 是从对象继承的连接。明白了很多,谢谢。
  • 此问题因错误原因关闭。这是建设性的,因为它提出了一个不明显的设计问题,有助于正确应用 Assert 类。但是,如前所述,它是重复的。

标签: c# unit-testing mstest


【解决方案1】:

Assert.Equals 只是继承自objectEquals 方法。跟单元测试没有关系,其实也没用。


更准确地说,Assert.EqualsObject.Equals 完全相同。 Object.Equals 有用。

但是,如果您使用的是Assert.Equals,那么您可能会将它与Assert.AreEqual 混淆,并且您想停止使用它。

【讨论】:

  • “与单元测试无关” - 很好......但“事实上,没有用”可能会产生误导。
  • 它有什么用?比较 Assert 类的实例?
  • 我认为它对静态的 Assert 类没有用处。
  • @JohnSaunders 它的用途就是"Determines whether the specified object instances are considered equal."。同意它与测试无关,但它的用途已明确说明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2021-03-27
  • 1970-01-01
  • 2017-08-14
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多