MSDN文档中的Assert.Equals()说明: 不要使用这种方法。
就是这样,完整的解释。呃..好吧,但是......那为什么呢? 它是早期版本框架的弃用方法吗?什么应该只被其他Microsoft Assemblies使用?
它只是让我想要更多地使用它知道我不应该这样做。 ; - )
有人知道吗?
答案 0 :(得分:22)
.Equals继承自object。它被列为“不要使用此方法”,因此用户不会将其与AreEqual方法混淆。
答案 1 :(得分:4)
答案 2 :(得分:1)
2008年(也许是SP1)在调用时未通过测试,因此意外使用它的人被告知他们真的不应该使用它。
答案 3 :(得分:1)
Assert.Equals
,就像它的基类方法Object.Equals
一样,对于比较对象非常有用。但是,这两种方法都不适用于独立检测和报告或单元测试中的错误,因为如果值不相等,Object.Equals
返回布尔值而不是抛出。如果在单元测试中使用这个问题,这是一个问题:
Assert.Equals(42, ComputeMeaningOfLife());
除了这个单元测试可能运行得太长的问题:-)之外,即使Compute方法提供了错误的结果,这个测试也会默默地成功。正确的使用方法是Assert.AreEqual
,它不返回任何内容,但如果参数不相等则抛出异常。
Assert.Equals
,因此上面示例中的代码不会回退到Object.Equals
并且无声地在单元测试中。相反,当从单元测试调用时,Assert.Equals
总是会抛出异常,提醒您不要使用它。