简体   繁体   中英

Assert.AreEqual(object, object) method

How does the Assert.AreEqual(object, object) method (in the namespace Microsoft.VisualStudio.TestTools.UnitTesting ) determine whether the parameters are equal? Does it make use of the Object.Equals(object, object) method (in the System namespace)?

using reflector you can see that it does indeed use 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);
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM