我正在为我的当前项目编写单元测试,并发现了一些奇怪的东西。.Net UnitTesting库同时具有Assert.Equals和Assert.AreEqual方法。Assert.Equals的注释建议使用Assert.AreEqual方法来比较两个对象,但没有给出为什么要使用Assert.AreEqual而不是Assert.Equals的理由。请问在单元测试中什么情况下应该使用Assert.Equals,如果有的话?Assert.Equals和Assert.AreEqual之间的区别是什么?
我正在为我的当前项目编写单元测试,并发现了一些奇怪的东西。.Net UnitTesting库同时具有Assert.Equals和Assert.AreEqual方法。Assert.Equals的注释建议使用Assert.AreEqual方法来比较两个对象,但没有给出为什么要使用Assert.AreEqual而不是Assert.Equals的理由。请问在单元测试中什么情况下应该使用Assert.Equals,如果有的话?Assert.Equals和Assert.AreEqual之间的区别是什么?
Assert.Equals
是从object
继承的Equals
方法。 它与单元测试无关,实际上没有用处。
更准确地说,Assert.Equals
与Object.Equals
完全相同。Object.Equals
有用。
但是,如果您正在使用Assert.Equals
,那么您可能会将它与Assert.AreEqual
混淆,并且您需要停止使用它。
Assert.Equals
的作用或含义...它的功能是检查两个对象是否相等,'?' 使对象变为可空类型,如果你对DateTime, int
等进行尝试并尝试设置类似于var myInt = null
这样的内容,则会失败,但设置var myInt? = null
将使整数成为可空类型。这应该能帮助你回答自己的问题。 - MethodMan.Equals
和==
之间的区别..一个检查“对象”,而另一个检查“值”。 - MethodMan