【问题标题】:Assert.AreEqual(object, object) methodAssert.AreEqual(object, object) 方法
【发布时间】:2011-06-25 16:56:42
【问题描述】:

Assert.AreEqual(object, object)方法(在命名空间Microsoft.VisualStudio.TestTools.UnitTesting中)如何判断参数是否相等?它是否使用了Object.Equals(object, object) 方法(在System 命名空间中)?

【问题讨论】:

标签: c# .net unit-testing mstest assert


【解决方案1】:

使用reflector 可以看到它确实使用了 Object.Equals。

public static void AreEqual<T>(T expected, T actual, string message, params object[] parameters)
{
    if (!object.Equals(expected, actual))
    {
        string str;
        if (((actual != null) && (expected != null)) && !actual.GetType().Equals(expected.GetType()))
        {
            str = (string) FrameworkMessages.AreEqualDifferentTypesFailMsg((message == null) ? string.Empty : ReplaceNulls(message), ReplaceNulls(expected), expected.GetType().FullName, ReplaceNulls(actual), actual.GetType().FullName);
        }
        else
        {
            str = (string) FrameworkMessages.AreEqualFailMsg((message == null) ? string.Empty : ReplaceNulls(message), ReplaceNulls(expected), ReplaceNulls(actual));
        }
        HandleFail("Assert.AreEqual", str, parameters);
    }
}

【讨论】:

  • 谢谢。 Assert.AreEqual(object, object) 类似吗?
  • 对象,对象重载最终调用这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2012-11-10
相关资源
最近更新 更多