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