nunit 2.4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. data/docs/addinsDialog.html +74 -0
  2. data/docs/assertions.html +91 -0
  3. data/docs/attributes.html +89 -0
  4. data/docs/category.html +265 -0
  5. data/docs/classicModel.html +92 -0
  6. data/docs/codeFuncs.js +77 -0
  7. data/docs/collectionAssert.html +162 -0
  8. data/docs/collectionConstraints.html +130 -0
  9. data/docs/comparisonAsserts.html +271 -0
  10. data/docs/comparisonConstraints.html +109 -0
  11. data/docs/compoundConstraints.html +97 -0
  12. data/docs/conditionAsserts.html +123 -0
  13. data/docs/conditionConstraints.html +106 -0
  14. data/docs/configEditor.html +93 -0
  15. data/docs/configFiles.html +155 -0
  16. data/docs/consoleCommandLine.html +271 -0
  17. data/docs/constraintModel.html +134 -0
  18. data/docs/contextMenu.html +106 -0
  19. data/docs/culture.html +255 -0
  20. data/docs/customAsserts.html +115 -0
  21. data/docs/customConstraints.html +101 -0
  22. data/docs/description.html +178 -0
  23. data/docs/equalConstraint.html +139 -0
  24. data/docs/equalityAsserts.html +187 -0
  25. data/docs/exception.html +296 -0
  26. data/docs/explicit.html +256 -0
  27. data/docs/extensibility.html +83 -0
  28. data/docs/favicon.ico +0 -0
  29. data/docs/features.html +75 -0
  30. data/docs/fileAssert.html +114 -0
  31. data/docs/files/QuickStart.Spanish.doc +0 -0
  32. data/docs/files/QuickStart.doc +0 -0
  33. data/docs/files/Results.xsd +70 -0
  34. data/docs/files/Summary.xslt +47 -0
  35. data/docs/files/TestResult.xml +103 -0
  36. data/docs/files/Thumbs.db +0 -0
  37. data/docs/fixtureSetup.html +201 -0
  38. data/docs/fixtureTeardown.html +204 -0
  39. data/docs/getStarted.html +80 -0
  40. data/docs/guiCommandLine.html +183 -0
  41. data/docs/identityAsserts.html +99 -0
  42. data/docs/ignore.html +249 -0
  43. data/docs/img/addinsDialog.JPG +0 -0
  44. data/docs/img/assembliesTab.jpg +0 -0
  45. data/docs/img/assemblyReloadOptions.JPG +0 -0
  46. data/docs/img/bulletOff.gif +0 -0
  47. data/docs/img/bulletOn.gif +0 -0
  48. data/docs/img/configEditor.jpg +0 -0
  49. data/docs/img/console-mock.jpg +0 -0
  50. data/docs/img/displayTab.jpg +0 -0
  51. data/docs/img/generalOptions.jpg +0 -0
  52. data/docs/img/generalTab.jpg +0 -0
  53. data/docs/img/gui-screenshot.jpg +0 -0
  54. data/docs/img/gui-verify.jpg +0 -0
  55. data/docs/img/langFilter.gif +0 -0
  56. data/docs/img/logo.gif +0 -0
  57. data/docs/img/miniGui.jpg +0 -0
  58. data/docs/img/optionsDialog.jpg +0 -0
  59. data/docs/img/resultTab.jpg +0 -0
  60. data/docs/img/testLoadOptions.jpg +0 -0
  61. data/docs/img/testOutputOptions.jpg +0 -0
  62. data/docs/img/testProperties.jpg +0 -0
  63. data/docs/img/testResultOptions.JPG +0 -0
  64. data/docs/img/testTab.jpg +0 -0
  65. data/docs/img/testsTab.JPG +0 -0
  66. data/docs/img/textOutputOptions.jpg +0 -0
  67. data/docs/img/treeDisplayOptions.JPG +0 -0
  68. data/docs/img/visualStudioOptions.JPG +0 -0
  69. data/docs/index.html +75 -0
  70. data/docs/installation.html +172 -0
  71. data/docs/license.html +88 -0
  72. data/docs/listMapper.html +100 -0
  73. data/docs/mainMenu.html +260 -0
  74. data/docs/multiAssembly.html +130 -0
  75. data/docs/nunit-console.html +84 -0
  76. data/docs/nunit-gui.html +115 -0
  77. data/docs/nunit.css +118 -0
  78. data/docs/nunitAddins.html +331 -0
  79. data/docs/optionsDialog.html +262 -0
  80. data/docs/platform.html +285 -0
  81. data/docs/platformSupport.html +99 -0
  82. data/docs/projectEditor.html +127 -0
  83. data/docs/property.html +219 -0
  84. data/docs/propertyConstraint.html +89 -0
  85. data/docs/quickStart.html +314 -0
  86. data/docs/releaseNotes.html +1235 -0
  87. data/docs/sameasConstraint.html +98 -0
  88. data/docs/samples.html +126 -0
  89. data/docs/setCulture.html +173 -0
  90. data/docs/setup.html +199 -0
  91. data/docs/setupFixture.html +198 -0
  92. data/docs/stringAssert.html +107 -0
  93. data/docs/stringConstraints.html +111 -0
  94. data/docs/suite.html +222 -0
  95. data/docs/teardown.html +204 -0
  96. data/docs/test.html +171 -0
  97. data/docs/testFixture.html +168 -0
  98. data/docs/testProperties.html +76 -0
  99. data/docs/typeAsserts.html +101 -0
  100. data/docs/typeConstraints.html +103 -0
  101. data/docs/upgrade.html +97 -0
  102. data/docs/utilityAsserts.html +108 -0
  103. data/docs/vsSupport.html +140 -0
  104. data/lib/net-1.1/Failure.jpg +0 -0
  105. data/lib/net-1.1/Ignored.jpg +0 -0
  106. data/lib/net-1.1/NUnitFitTests.html +277 -0
  107. data/lib/net-1.1/NUnitTests.config +84 -0
  108. data/lib/net-1.1/NUnitTests.nunit +14 -0
  109. data/lib/net-1.1/Success.jpg +0 -0
  110. data/lib/net-1.1/clr.bat +96 -0
  111. data/lib/net-1.1/fit.dll +0 -0
  112. data/lib/net-1.1/loadtest-assembly.dll +0 -0
  113. data/lib/net-1.1/mock-assembly.dll +0 -0
  114. data/lib/net-1.1/nonamespace-assembly.dll +0 -0
  115. data/lib/net-1.1/notestfixtures-assembly.dll +0 -0
  116. data/lib/net-1.1/nunit-console-runner.dll +0 -0
  117. data/lib/net-1.1/nunit-console.exe +0 -0
  118. data/lib/net-1.1/nunit-console.exe.config +117 -0
  119. data/lib/net-1.1/nunit-console.tests.dll +0 -0
  120. data/lib/net-1.1/nunit-gui-runner.dll +0 -0
  121. data/lib/net-1.1/nunit-gui.tests.dll +0 -0
  122. data/lib/net-1.1/nunit.core.dll +0 -0
  123. data/lib/net-1.1/nunit.core.extensions.dll +0 -0
  124. data/lib/net-1.1/nunit.core.interfaces.dll +0 -0
  125. data/lib/net-1.1/nunit.core.tests.dll +0 -0
  126. data/lib/net-1.1/nunit.exe +0 -0
  127. data/lib/net-1.1/nunit.exe.config +121 -0
  128. data/lib/net-1.1/nunit.extensions.tests.dll +0 -0
  129. data/lib/net-1.1/nunit.fixtures.dll +0 -0
  130. data/lib/net-1.1/nunit.fixtures.tests.dll +0 -0
  131. data/lib/net-1.1/nunit.framework.dll +0 -0
  132. data/lib/net-1.1/nunit.framework.extensions.dll +0 -0
  133. data/lib/net-1.1/nunit.framework.tests.dll +0 -0
  134. data/lib/net-1.1/nunit.framework.xml +5622 -0
  135. data/lib/net-1.1/nunit.mocks.dll +0 -0
  136. data/lib/net-1.1/nunit.mocks.tests.dll +0 -0
  137. data/lib/net-1.1/nunit.uikit.dll +0 -0
  138. data/lib/net-1.1/nunit.uikit.tests.dll +0 -0
  139. data/lib/net-1.1/nunit.util.dll +0 -0
  140. data/lib/net-1.1/nunit.util.tests.dll +0 -0
  141. data/lib/net-1.1/runFile.exe +0 -0
  142. data/lib/net-1.1/runFile.exe.config +43 -0
  143. data/lib/net-1.1/test-assembly.dll +0 -0
  144. data/lib/net-1.1/test-utilities.dll +0 -0
  145. data/lib/net-1.1/timing-tests.dll +0 -0
  146. data/lib/net-2.0/Failure.jpg +0 -0
  147. data/lib/net-2.0/Ignored.jpg +0 -0
  148. data/lib/net-2.0/NUnitFitTests.html +277 -0
  149. data/lib/net-2.0/NUnitTests.config +84 -0
  150. data/lib/net-2.0/NUnitTests.nunit +14 -0
  151. data/lib/net-2.0/Success.jpg +0 -0
  152. data/lib/net-2.0/clr.bat +96 -0
  153. data/lib/net-2.0/fit.dll +0 -0
  154. data/lib/net-2.0/loadtest-assembly.dll +0 -0
  155. data/lib/net-2.0/mock-assembly.dll +0 -0
  156. data/lib/net-2.0/nonamespace-assembly.dll +0 -0
  157. data/lib/net-2.0/notestfixtures-assembly.dll +0 -0
  158. data/lib/net-2.0/nunit-console-runner.dll +0 -0
  159. data/lib/net-2.0/nunit-console-x86.exe +0 -0
  160. data/lib/net-2.0/nunit-console-x86.exe.config +117 -0
  161. data/lib/net-2.0/nunit-console.exe +0 -0
  162. data/lib/net-2.0/nunit-console.exe.config +117 -0
  163. data/lib/net-2.0/nunit-console.tests.dll +0 -0
  164. data/lib/net-2.0/nunit-gui-runner.dll +0 -0
  165. data/lib/net-2.0/nunit-gui.tests.dll +0 -0
  166. data/lib/net-2.0/nunit-x86.exe +0 -0
  167. data/lib/net-2.0/nunit-x86.exe.config +121 -0
  168. data/lib/net-2.0/nunit.core.dll +0 -0
  169. data/lib/net-2.0/nunit.core.extensions.dll +0 -0
  170. data/lib/net-2.0/nunit.core.interfaces.dll +0 -0
  171. data/lib/net-2.0/nunit.core.tests.dll +0 -0
  172. data/lib/net-2.0/nunit.exe +0 -0
  173. data/lib/net-2.0/nunit.exe.config +121 -0
  174. data/lib/net-2.0/nunit.extensions.tests.dll +0 -0
  175. data/lib/net-2.0/nunit.fixtures.dll +0 -0
  176. data/lib/net-2.0/nunit.fixtures.tests.dll +0 -0
  177. data/lib/net-2.0/nunit.framework.dll +0 -0
  178. data/lib/net-2.0/nunit.framework.extensions.dll +0 -0
  179. data/lib/net-2.0/nunit.framework.tests.dll +0 -0
  180. data/lib/net-2.0/nunit.framework.xml +5622 -0
  181. data/lib/net-2.0/nunit.mocks.dll +0 -0
  182. data/lib/net-2.0/nunit.mocks.tests.dll +0 -0
  183. data/lib/net-2.0/nunit.uikit.dll +0 -0
  184. data/lib/net-2.0/nunit.uikit.tests.dll +0 -0
  185. data/lib/net-2.0/nunit.util.dll +0 -0
  186. data/lib/net-2.0/nunit.util.tests.dll +0 -0
  187. data/lib/net-2.0/runFile.exe +0 -0
  188. data/lib/net-2.0/runFile.exe.config +43 -0
  189. data/lib/net-2.0/test-assembly.dll +0 -0
  190. data/lib/net-2.0/test-utilities.dll +0 -0
  191. data/lib/net-2.0/timing-tests.dll +0 -0
  192. metadata +262 -0
@@ -0,0 +1,255 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2
+ <html>
3
+ <!-- Standard Head Part -->
4
+ <head>
5
+ <title>NUnit - Culture</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
7
+ <meta http-equiv="Content-Language" content="en-US">
8
+ <link rel="stylesheet" type="text/css" href="nunit.css">
9
+ <link rel="shortcut icon" href="favicon.ico">
10
+ </head>
11
+ <!-- End Standard Head Part -->
12
+
13
+ <body>
14
+
15
+ <!-- Standard Header for NUnit.org -->
16
+ <div id="header">
17
+ <a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
18
+ <div id="nav">
19
+ <a href="http://www.nunit.org">NUnit</a>
20
+ <a class="active" href="index.html">Documentation</a>
21
+ </div>
22
+ </div>
23
+ <!-- End of Header -->
24
+
25
+ <div id="content">
26
+
27
+ <script language="JavaScript" src="codeFuncs.js" ></script> <!-- Do it this way for IE -->
28
+
29
+ <style><!--
30
+ div.code { width: 34em }
31
+ --></style>
32
+
33
+ <h3>CultureAttribute (NUnit 2.4.2)</h3>
34
+ <p>The Culture attribute is used to specify cultures for which a test or fixture
35
+ should be run. It does not affect the culture setting, but merely uses it to
36
+ determine whether to run the test. If you wish to change the culture when
37
+ running a test, use the SetCulture attribute instead.</p>
38
+
39
+ <p>If the specified culture requirements for a test are not met it is skipped.
40
+ In the gui, the tree node for the test remains gray and the status bar color is
41
+ not affected.</p>
42
+
43
+ <p>One use of the Culture attribute is to provide alternative tests under different
44
+ cultures. You may specify either specific cultures, like "en-GB" or neutral
45
+ cultures like "de".</p>
46
+
47
+ <h4>Test Fixture Syntax</h4>
48
+
49
+ <div class="code">
50
+
51
+ <div class="langFilter">
52
+ <a href="javascript:Show('DD1')" onmouseover="Show('DD1')"><img src="img/langFilter.gif" width="14" height="14" alt="Language Filter"></a>
53
+ <div id="DD1" class="dropdown" style="display: none;" onclick="Hide('DD1')">
54
+ <a href="javascript:ShowCS()">C#</a><br>
55
+ <a href="javascript:ShowVB()">VB</a><br>
56
+ <a href="javascript:ShowMC()">C++</a><br>
57
+ <a href="javascript:ShowJS()">J#</a><br>
58
+ </div>
59
+ </div>
60
+
61
+ <pre class="cs">namespace NUnit.Tests
62
+ {
63
+ using System;
64
+ using NUnit.Framework;
65
+
66
+ [TestFixture]
67
+ [Culture(&quot;fr-FR&quot;)]
68
+ public class FrenchCultureTests
69
+ {
70
+ // ...
71
+ }
72
+ }
73
+ </pre>
74
+
75
+ <pre class="vb">Imports System
76
+ Imports Nunit.Framework
77
+
78
+ Namespace Nunit.Tests
79
+
80
+ &lt;TestFixture(), Culture(&quot;fr-FR&quot;)&gt;
81
+ Public Class FrenchCultureTests
82
+ &#39; ...
83
+ End Class
84
+ End Namespace
85
+ </pre>
86
+
87
+ <pre class="mc">#using &lt;Nunit.Framework.dll&gt;
88
+ using namespace System;
89
+ using namespace NUnit::Framework;
90
+
91
+ namespace NUnitTests
92
+ {
93
+ [TestFixture]
94
+ [Culture(&quot;fr-FR&quot;)]
95
+ public __gc class FrenchCultureTests
96
+ {
97
+ // ...
98
+ };
99
+ }
100
+
101
+ #include &quot;cppsample.h&quot;
102
+
103
+ namespace NUnitTests {
104
+ // ...
105
+ }
106
+ </pre>
107
+
108
+ <pre class="js">package NUnit.Tests;
109
+
110
+ import System.*;
111
+ import NUnit.Framework.TestFixture;
112
+
113
+
114
+ /** @attribute NUnit.Framework.TestFixture() */
115
+ /** @attribute NUnit.Framework.Culture(&quot;fr-FR&quot;) */
116
+ public class FrenchCultureTests
117
+ {
118
+ // ...
119
+ }
120
+ </pre>
121
+ </div>
122
+ <h4>Test Syntax</h4>
123
+ <div class="code">
124
+
125
+ <div class="langFilter">
126
+ <a href="javascript:Show('DD2')" onmouseover="Show('DD2')"><img src="img/langFilter.gif" width="14" height="14" alt="Language Filter"></a>
127
+ <div id="DD2" class="dropdown" style="display: none;" onclick="Hide('DD2')">
128
+ <a href="javascript:ShowCS()">C#</a><br>
129
+ <a href="javascript:ShowVB()">VB</a><br>
130
+ <a href="javascript:ShowMC()">C++</a><br>
131
+ <a href="javascript:ShowJS()">J#</a><br>
132
+ </div>
133
+ </div>
134
+
135
+ <pre class="cs">namespace NUnit.Tests
136
+ {
137
+ using System;
138
+ using NUnit.Framework;
139
+
140
+ [TestFixture]
141
+ public class SuccessTests
142
+ {
143
+ [Test]
144
+ [Culture(Exclude=&quot;en,de&quot;)]
145
+ public void SomeTest()
146
+ { /* ... */ }
147
+ }
148
+ </pre>
149
+
150
+ <pre class="vb">Imports System
151
+ Imports Nunit.Framework
152
+
153
+ Namespace Nunit.Tests
154
+
155
+ &lt;TestFixture()&gt;
156
+ Public Class SuccessTests
157
+ &lt;Test(), Culture(Exclude=&quot;en,de&quot;)&gt; Public Sub SomeTest()
158
+ &#39; ...
159
+ End Sub
160
+ End Class
161
+ End Namespace
162
+ </pre>
163
+
164
+ <pre class="mc">#using &lt;Nunit.Framework.dll&gt;
165
+ using namespace System;
166
+ using namespace NUnit::Framework;
167
+
168
+ namespace NUnitTests
169
+ {
170
+ [TestFixture]
171
+ public __gc class SuccessTests
172
+ {
173
+ [Test][Culture(Exclude=&quot;en,de&quot;)] void SomeTest();
174
+ };
175
+ }
176
+
177
+ #include &quot;cppsample.h&quot;
178
+
179
+ namespace NUnitTests {
180
+ // ...
181
+ }
182
+ </pre>
183
+
184
+ <pre class="js">package NUnit.Tests;
185
+
186
+ import System.*;
187
+ import NUnit.Framework.TestFixture;
188
+
189
+
190
+ /** @attribute NUnit.Framework.TestFixture() */
191
+ public class SuccessTests
192
+ {
193
+ /** @attribute NUnit.Framework.Test() */
194
+ /** @attribute NUnit.Framework.Culture(Exclude=en,de&quot;) */
195
+ public void SomeTest()
196
+ { /* ... */ }
197
+ }
198
+ </pre>
199
+
200
+ </div>
201
+
202
+ <h4>See also...</h4>
203
+ <ul>
204
+ <li><a href="setCulture.html">SetCultureAttribute</a></ul>
205
+
206
+
207
+ </div>
208
+
209
+ <!-- Submenu -->
210
+ <div id="subnav">
211
+ <ul>
212
+ <li><a href="index.html">NUnit 2.4.8</a></li>
213
+ <ul>
214
+ <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
215
+ <li><a href="assertions.html">Assertions</a></li>
216
+ <li><a href="attributes.html">Attributes</a></li>
217
+ <ul>
218
+ <li><a href="category.html">Category</a></li>
219
+ <li id="current"><a href="culture.html">Culture</a></li>
220
+ <li><a href="description.html">Description</a></li>
221
+ <li><a href="exception.html">Expected&nbsp;Exception</a></li>
222
+ <li><a href="explicit.html">Explicit</a></li>
223
+ <li><a href="ignore.html">Ignore</a></li>
224
+ <li><a href="platform.html">Platform</a></li>
225
+ <li><a href="property.html">Property</a></li>
226
+ <li><a href="setCulture.html">SetCulture</a></li>
227
+ <li><a href="setup.html">Setup</a></li>
228
+ <li><a href="setupFixture.html">SetUp&nbsp;Fixture</a></li>
229
+ <li><a href="suite.html">Suite</a></li>
230
+ <li><a href="teardown.html">Teardown</a></li>
231
+ <li><a href="test.html">Test</a></li>
232
+ <li><a href="testFixture.html">Test&nbsp;Fixture</a></li>
233
+ <li><a href="fixtureSetup.html">Test&nbsp;Fixture&nbsp;SetUp</a></li>
234
+ <li><a href="fixtureTeardown.html">Test&nbsp;Fixture&nbsp;TearDown</a></li>
235
+ </ul>
236
+ <li><a href="nunit-console.html">Console&nbsp;Runner</a></li>
237
+ <li><a href="nunit-gui.html">Gui&nbsp;Runner</a></li>
238
+ <li><a href="features.html">Other&nbsp;Features</a></li>
239
+ <li><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
240
+ <li><a href="samples.html">Samples</a></li>
241
+ <li><a href="license.html">License</a></li>
242
+ </ul>
243
+ </ul>
244
+ </div>
245
+ <!-- End of Submenu -->
246
+
247
+
248
+ <!-- Standard Footer for NUnit.org -->
249
+ <div id="footer">
250
+ Copyright &copy; 2008 Charlie Poole. All Rights Reserved.
251
+ </div>
252
+ <!-- End of Footer -->
253
+
254
+ </body>
255
+ </html>
@@ -0,0 +1,115 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2
+ <html>
3
+ <!-- Standard Head Part -->
4
+ <head>
5
+ <title>NUnit - CustomAsserts</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
7
+ <meta http-equiv="Content-Language" content="en-US">
8
+ <link rel="stylesheet" type="text/css" href="nunit.css">
9
+ <link rel="shortcut icon" href="favicon.ico">
10
+ </head>
11
+ <!-- End Standard Head Part -->
12
+
13
+ <body>
14
+
15
+ <!-- Standard Header for NUnit.org -->
16
+ <div id="header">
17
+ <a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
18
+ <div id="nav">
19
+ <a href="http://www.nunit.org">NUnit</a>
20
+ <a class="active" href="index.html">Documentation</a>
21
+ </div>
22
+ </div>
23
+ <!-- End of Header -->
24
+
25
+ <div id="content">
26
+
27
+ <h2>Custom Asserts</h2>
28
+
29
+ <div style="text-align: center; margin: 2em 10%; padding: 4px 0; border: 2px solid black">
30
+ <h4>Preliminary documentation, subject to change.</h4>
31
+ </div>
32
+
33
+ <p>Experienced developers using NUnit generally end up with a library of custom
34
+ setup, teardown, test and support methods. Custom Asserts provide one way to
35
+ re-package such methods, allowing the normal NUnit syntax to be used to
36
+ invoke them and providing error messages that match the style and layout
37
+ of standard NUnit messages.</p>
38
+
39
+ <p>The standard NUnit Asserts create an object known as an <b>asserter</b> and
40
+ pass it to the <b>DoAssert</b> method, which includes code similar to this...
41
+
42
+ <pre>
43
+ if ( !asserter.Test() )
44
+ throw new AssertionException( asserter.Message );
45
+ </pre></p>
46
+
47
+ <p><b>Asserters</b> encapsulate the comparison to be performed as well as the
48
+ objects being compared. They implement the <b>IAsserter</b> interface,
49
+ defined as follows:
50
+
51
+ <pre>
52
+ public interface IAsserter
53
+ {
54
+ // Test the condition for the assertion.
55
+ bool Test();
56
+
57
+ // Return the message giving the failure reason.
58
+ string Message { get; }
59
+ }
60
+ </pre></p>
61
+
62
+ <p>When implementing an <b>asserter</b>, you will have to decide on an approach
63
+ for creating the message. For complex tests, it may be necessary to create
64
+ and cache the message - or info used to create it - while the test is
65
+ being performed. For example, when NUnit compares arrays, it notes the
66
+ point of failure for use in the message. Otherwise, it would have to
67
+ pass the entire array a second time.</p>
68
+
69
+ <p>Generally, the constructor for the <b>asserter</b> will include any required
70
+ parameters, the actual value and an optional user message. You may invoke
71
+ the asserter directly, using <b>Assert.DoAssert</b>, but it is generally more
72
+ convenient and readable to create an class similar to NUNit's <b>Assert</b> class,
73
+ which contains static methods that wrap the object creation. For an example of
74
+ how to do this, see the <b>StringAssert</b> class in the NUnit source.</p>
75
+
76
+ </div>
77
+
78
+ <!-- Submenu -->
79
+ <div id="subnav">
80
+ <ul>
81
+ <li><a href="index.html">NUnit 2.4.8</a></li>
82
+ <ul>
83
+ <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
84
+ <li><a href="assertions.html">Assertions</a></li>
85
+ <li><a href="attributes.html">Attributes</a></li>
86
+ <li><a href="nunit-console.html">Console&nbsp;Runner</a></li>
87
+ <li><a href="nunit-gui.html">Gui&nbsp;Runner</a></li>
88
+ <li><a href="features.html">Other&nbsp;Features</a></li>
89
+ <ul>
90
+ <li><a href="configFiles.html">Configuration&nbsp;Files</a></li>
91
+ <li><a href="multiAssembly.html">Multiple&nbsp;Assemblies</a></li>
92
+ <li><a href="vsSupport.html">Visual&nbsp;Studio&nbsp;Support</a></li>
93
+ <li><a href="extensibility.html">Extensibility</a></li>
94
+ <ul>
95
+ <li id="current"><a href="customAsserts.html">Custom&nbsp;Asserts</a></li>
96
+ <li><a href="nunitAddins.html">NUnit&nbsp;Addins</a></li>
97
+ </ul>
98
+ </ul>
99
+ <li><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
100
+ <li><a href="samples.html">Samples</a></li>
101
+ <li><a href="license.html">License</a></li>
102
+ </ul>
103
+ </ul>
104
+ </div>
105
+ <!-- End of Submenu -->
106
+
107
+
108
+ <!-- Standard Footer for NUnit.org -->
109
+ <div id="footer">
110
+ Copyright &copy; 2008 Charlie Poole. All Rights Reserved.
111
+ </div>
112
+ <!-- End of Footer -->
113
+
114
+ </body>
115
+ </html>
@@ -0,0 +1,101 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
2
+ <html>
3
+ <!-- Standard Head Part -->
4
+ <head>
5
+ <title>NUnit - CustomConstraints</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
7
+ <meta http-equiv="Content-Language" content="en-US">
8
+ <link rel="stylesheet" type="text/css" href="nunit.css">
9
+ <link rel="shortcut icon" href="favicon.ico">
10
+ </head>
11
+ <!-- End Standard Head Part -->
12
+
13
+ <body>
14
+
15
+ <!-- Standard Header for NUnit.org -->
16
+ <div id="header">
17
+ <a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
18
+ <div id="nav">
19
+ <a href="http://www.nunit.org">NUnit</a>
20
+ <a class="active" href="index.html">Documentation</a>
21
+ </div>
22
+ </div>
23
+ <!-- End of Header -->
24
+
25
+ <div id="content">
26
+
27
+ <h2>Custom Constraints (NUnit 2.4)</h2>
28
+
29
+ <p>You can implement your own custom constraints by creating a class that
30
+ inherits from the <b>Constraint</b> abstract class, which supports performing a
31
+ test on an actual value and generating appropriate messages. The class includes
32
+ two abstract methods, which you must override and two virtual methods which
33
+ may be overridden as needed:
34
+
35
+ <div class="code" style="width: 36em">
36
+ <pre>public abstract class Constraint
37
+ {
38
+ ...
39
+ public abstract bool Matches( object actual );
40
+ public abstract void WriteDescriptionTo( MessageWriter writer );
41
+ public virtual void WriteMessageTo( MessageWriter writer );
42
+ public virtual void WriteActualValueTo( MessageWriter writer );
43
+ ...
44
+ }</pre>
45
+ </div>
46
+
47
+ <p>Your derived class should save the actual argument to Matches in the protected
48
+ field actual for later use.
49
+
50
+ <p>The MessageWriter abstract class is implemented in the framework by
51
+ TextMessageWriter. Examining the source for some of the builtin constraints
52
+ should give you a good idea of how to use it.
53
+
54
+
55
+ </div>
56
+
57
+ <!-- Submenu -->
58
+ <div id="subnav">
59
+ <ul>
60
+ <li><a href="index.html">NUnit 2.4.8</a></li>
61
+ <ul>
62
+ <li><a href="getStarted.html">Getting&nbsp;Started</a></li>
63
+ <li><a href="assertions.html">Assertions</a></li>
64
+ <ul>
65
+ <li><a href="classicModel.html">Classic&nbsp;Model</a></li>
66
+ <li><a href="constraintModel.html">Constraint&nbsp;Model</a></li>
67
+ <ul>
68
+ <li><a href="equalConstraint.html">Equal&nbsp;Constraint</a></li>
69
+ <li><a href="sameasConstraint.html">SameAs&nbsp;Constraint</a></li>
70
+ <li><a href="conditionConstraints.html">Condition&nbsp;Constraints</a></li>
71
+ <li><a href="comparisonConstraints.html">Comparison&nbsp;Constrants</a></li>
72
+ <li><a href="typeConstraints.html">Type&nbsp;Constraints</a></li>
73
+ <li><a href="stringConstraints.html">String&nbsp;Constraints</a></li>
74
+ <li><a href="collectionConstraints.html">Collection&nbsp;Constraints</a></li>
75
+ <li><a href="propertyConstraint.html">Property&nbsp;Constraint</a></li>
76
+ <li><a href="compoundConstraints.html">Compound&nbsp;Constraints</a></li>
77
+ <li id="current"><a href="customConstraints.html">Custom&nbsp;Constraints</a></li>
78
+ <li><a href="listMapper.html">List&nbsp;Mapper</a></li>
79
+ </ul>
80
+ </ul>
81
+ <li><a href="attributes.html">Attributes</a></li>
82
+ <li><a href="nunit-console.html">Console&nbsp;Runner</a></li>
83
+ <li><a href="nunit-gui.html">Gui&nbsp;Runner</a></li>
84
+ <li><a href="features.html">Other&nbsp;Features</a></li>
85
+ <li><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
86
+ <li><a href="samples.html">Samples</a></li>
87
+ <li><a href="license.html">License</a></li>
88
+ </ul>
89
+ </ul>
90
+ </div>
91
+ <!-- End of Submenu -->
92
+
93
+
94
+ <!-- Standard Footer for NUnit.org -->
95
+ <div id="footer">
96
+ Copyright &copy; 2008 Charlie Poole. All Rights Reserved.
97
+ </div>
98
+ <!-- End of Footer -->
99
+
100
+ </body>
101
+ </html>