maf*_*afu 5 c# unit-testing equals visual-studio
我最近偶然发现一个看似奇怪的行为,谷歌完全无法解释.
using Microsoft.VisualStudio.TestTools.UnitTesting;
class TestClass
{
public override bool Equals(object obj)
{
return true;
}
}
[TestMethod]
public void TestMethod1()
{
TestClass t = new TestClass ();
Assert.AreEqual (t, null); // fails
Assert.IsTrue (t.Equals (null)); // passes
}
Run Code Online (Sandbox Code Playgroud)
我希望这个测试能够成功.但是,在Visual Studio 2008/.NET 3.5中,它失败了.它是打算像那样还是一个bug?
Jon*_*eet 15
你的TestClass违反了合同Object.Equals.Assert.AreEqual非常合理地依靠合同.
文档说明(在要求列表中):
| 归档时间: |
|
| 查看次数: |
15319 次 |
| 最近记录: |