Assert
System.Object से विरासत में मिला एक स्थिर वर्ग है, क्योंकि सभी वर्ग C # में निहित हैं। System.Object निम्नलिखित विधि को लागू करता है:
static bool Equals(object a, object b)
समानता की तुलना के लिए अभिप्रेत Assert.AreEqual()
तरीके विधियां हैं। इसलिए, Object.Equals()
एक इकाई परीक्षण में एस्टर वर्ग के माध्यम से विधि को कॉल करना निश्चित रूप से एक गलती है। इस गलती को रोकने और भ्रम से बचने के लिए, NUnit के डेवलपर्स ने जानबूझकर Object.Equals
एसेर क्लास में एक कार्यान्वयन के साथ छिपाया है जो एक अपवाद को फेंकता है। यहाँ कार्यान्वयन है:
/// <summary>
/// The Equals method throws an AssertionException. This is done
/// to make sure there is no mistake by calling this function.
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
[EditorBrowsable(EditorBrowsableState.Never)]
public static new bool Equals(object a, object b)
{
// TODO: This should probably be InvalidOperationException
throw new AssertionException("Assert.Equals should not be used for Assertions");
}
बेशक अपवाद संदेश अपने आप में भ्रामक है, लेकिन कम से कम यह आपको यह बताने देता है कि आपने कुछ गलत किया है।