1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<!-- Standard Head Part -->
<head>
<title>NUnit - EqualConstraint</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="en-US">
<link rel="stylesheet" type="text/css" href="nunit.css">
<link rel="shortcut icon" href="favicon.ico">
</head>
<!-- End Standard Head Part -->
<body>
<!-- Standard Header for NUnit.org -->
<div id="header">
<a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
<div id="nav">
<a href="http://www.nunit.org">NUnit</a>
<a class="active" href="index.html">Documentation</a>
</div>
</div>
<!-- End of Header -->
<div id="content">
<h2>Equal Constraint (NUnit 2.4)</h2>
<p>An EqualConstraint is used to test whether an actual value
is equal to the expected value supplied in its constructor.
<table class="constraints">
<tr><th>Syntax Helper</th><th>Constructor</th><th>Operation</th></tr>
<tr><td>Is.EqualTo( object )</td><td>EqualConstraint( null )</td></td><td>tests that two objects are equal</td></tr>
</table>
<h4>Notes</h4>
<ol>
<li><p>Numerics of different types compare successfully if their values are equal.
<li><p>Values of type float and double are normally compared using an additional
argument that indicates a tolerance within which they will be considered
as equal. The <b>Within</b> modifier is used for this purpose. Beginning with
NUnit 2.4.2, a tolerance may be specified for other numeric types as well.
<li><p>Beginning with NUnit 2.4.4, float and double comparisons for which no
tolerance is specified use a default, use the value of
<b>GlobalSettings.DefaultFloatingPointTolerance</b>. If this is not
set, a tolerance of 0.0d is used.
<li><p>Beginning with NUnit 2.4, equality comparisons of <b>DateTime</b> values
may use a <b>TimeSpan</b> as a tolerannce.
<li><p>Unlike normal floating point arithmetic, floating NaN comparisons succeed
if both values are NaN. See the note on
<a href="equalityAsserts.html">Equality Asserts</a>.
<li><p>You may use this constraint to compare arrays with the same number of dimensions,
two collections or an single-dimensioned array and collection. If you want to
treat the arrays being compared as simple collections, use the <b>AsCollection</b>
modifier, which causes the comparison to be made element by element, without
regard for the rank or dimensions of the array. Jagged arrays (arrays of arrays)
are compared recursively and must match in shape exactly for the comparison
to succeed.
<li><p>In order to assert that two strings are equal ignoring case, use the <b>IgnoreCase</b>
modifier. It may also be used when comparing arrays or collections of strings.
<li><p>When an equality test between two strings fails, the relevant portion of
of both strings is displayed in the error message, clipping the strings to
fit the length of the line as needed. Beginning with 2.4.4, this behavior
may be modified by use of the <b>NoClip</b> modifier on the constraint. In
addition, the maximum line length may be modified for all tests by setting
the value of <b>TextMessageWriter.MaximumLineLength</b> in the appropriate
level of setup.
</ol>
<h4>Examples of Use</h4>
<div class="code" style="width: 40em"><pre>
Assert.That(2 + 2, Is.EqualTo(4));
Assert.That(2 + 2 == 4);
Assert.That(2 + 2, Is.Not.EqualTo(5));
Assert.That(2 + 2 != 5);
Assert.That( 5.0, Is.EqualTo( 5 );
Assert.That( 2.1 + 1.2, Is.EqualTo( 3.3 ).Within( .0005 );
Assert.That( double.PositiveInfinity, Is.EqualTo( double.PositiveInfinity ) );
Assert.That( double.NegativeInfinity, Is.EqualTo( double.NegativeInfinity ) );
Assert.That( double.NaN, Is.EqualTo( double.NaN ) );
int[] i3 = new int[] { 1, 2, 3 };
double[] d3 = new double[] { 1.0, 2.0, 3.0 };
int[] iunequal = new int[] { 1, 3, 2 };
Assert.That(i3, Is.EqualTo(d3));
Assert.That(i3, Is.Not.EqualTo(iunequal));
int array2x2 = new int[,] { { 1, 2 } { 3, 4 } };
int array4 = new int[] { 1, 2, 3, 4 };
Assert.That( array2x2, Is.EqualTo( array4 ) ); // Fails
Assert.That( array2x2, Is.EqualTo( array4 ).AsCollection ); // Succeeds
Assert.That( "Hello!", Is.EqualTo( "HELLO!" ).IgnoreCase );
string[] expected = new string[] { "Hello", World" };
string[] actual = new string[] { "HELLO", "world" };
Assert.That( actual, Is.EqualTo( expected ).IgnoreCase;
// Using inheritance
Expect( i3, EqualTo( d3 ) );
Expect( i3, Not.EqualTo( iunequal ) );
</pre></div>
</div>
<!-- Submenu -->
<div id="subnav">
<ul>
<li><a href="index.html">NUnit 2.4.7</a></li>
<ul>
<li><a href="getStarted.html">Getting Started</a></li>
<li><a href="assertions.html">Assertions</a></li>
<ul>
<li><a href="classicModel.html">Classic Model</a></li>
<li><a href="constraintModel.html">Constraint Model</a></li>
<ul>
<li id="current"><a href="equalConstraint.html">Equal Constraint</a></li>
<li><a href="sameasConstraint.html">SameAs Constraint</a></li>
<li><a href="conditionConstraints.html">Condition Constraints</a></li>
<li><a href="comparisonConstraints.html">Comparison Constrants</a></li>
<li><a href="typeConstraints.html">Type Constraints</a></li>
<li><a href="stringConstraints.html">String Constraints</a></li>
<li><a href="collectionConstraints.html">Collection Constraints</a></li>
<li><a href="propertyConstraint.html">Property Constraint</a></li>
<li><a href="compoundConstraints.html">Compound Constraints</a></li>
<li><a href="customConstraints.html">Custom Constraints</a></li>
<li><a href="listMapper.html">List Mapper</a></li>
</ul>
</ul>
<li><a href="attributes.html">Attributes</a></li>
<li><a href="nunit-console.html">Console Runner</a></li>
<li><a href="nunit-gui.html">Gui Runner</a></li>
<li><a href="features.html">Other Features</a></li>
<li><a href="releaseNotes.html">Release Notes</a></li>
<li><a href="samples.html">Samples</a></li>
<li><a href="license.html">License</a></li>
</ul>
</ul>
</div>
<!-- End of Submenu -->
<!-- Standard Footer for NUnit.org -->
<div id="footer">
Copyright © 2008 Charlie Poole. All Rights Reserved.
</div>
<!-- End of Footer -->
</body>
</html>
|