来自MSDN文档的Assert.Equals()的描述:
不要使用此方法。
这就是全部说明。嗯...好吧,那么...它为什么会在那里呢?它是一个早期框架版本中弃用的方法吗?是只能由其他Microsoft程序集使用的东西吗?
这让我更想使用它,因为我知道我不应该使用它。;-)
有人知道吗?
来自MSDN文档的Assert.Equals()的描述:
不要使用此方法。
这就是全部说明。嗯...好吧,那么...它为什么会在那里呢?它是一个早期框架版本中弃用的方法吗?是只能由其他Microsoft程序集使用的东西吗?
这让我更想使用它,因为我知道我不应该使用它。;-)
有人知道吗?
.Equals方法继承自Object类。它被标注为“不要使用这个方法”,以便用户不会将其与AreEqual方法混淆。
Assert.Equals
,就像它的基类方法Object.Equals
一样,非常适用于比较对象。然而,这两种方法都不适用于单独检测和报告单元测试中的错误,因为Object.Equals
返回一个布尔值而不是抛出异常,如果值不相等,这会成为一个问题,如果在单元测试中这样使用:
Assert.Equals(42, ComputeMeaningOfLife());
Assert.AreEqual
,它不返回任何内容,但如果参数不相等则会抛出异常。Assert.Equals
以避免像上面示例中的代码回退到Object.Equals
并悄悄地破坏单元测试。相反,当从单元测试调用时,Assert.Equals
总是会抛出异常,提醒您不要使用它。它在2008年进行了更改(可能是SP1),以便在调用时失败测试,这样那些无意中使用它的人会被告知他们真的不应该使用它。