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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
<!-- saved from url=(0014)about:internet --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<!-- Standard Head Part -->
<head>
<title>NUnit - ThrowsConstraint</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="en-US">
<meta name="norton-safeweb-site-verification" content="tb6xj01p4hgo5x-8wscsmq633y11-e6nhk-bnb5d987bseanyp6p0uew-pec8j963qlzj32k5x9h3r2q7wh-vmy8bbhek5lnpp5w4p8hocouuq39e09jrkihdtaeknua" />
<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>Throws Constraint (NUnit 2.5)</h2>
<p><b>ThrowsConstraint</b> is used to test that some code, represented as a delegate,
throws a particular exception. It may be used alone, to merely test the type
of constraint, or with an additional constraint to be applied to the exception
specified as an argument.
p>The related <b>ThrowsNothingConstraint</b> simply asserts that the delegate
does not throw an exception.
<h4>Constructors</h4>
<div class="code"><pre>
ThrowsConstraint(Type expectedType)
ThrowsConstraint<T>()
ThrowsConstraint(Type expectedType, Constraint constraint)
ThrowsConstraint<T>(Constraint constraint)
ThrowsNothingConstraint()
</pre></div>
<h4>Syntax</h4>
<div class="code"><pre>
Throws.Exception
Throws.TargetInvocationException
Throws.ArgumentException
Throws.InvalidOperationException
Throws.TypeOf(Type expectedType)
Throws.TypeOf<T>()
Throws.InstanceOf(Type expectedType)
Throws.InstanceOf<T>()
Throws.Nothing
Throws.InnerException
</pre></div>
<h4>Examples of Use</h4>
<div class="code"><pre>
// .NET 1.1
Assert.That( new TestDelegate(SomeMethod),
Throws.TypeOf(typeof(ArgumentException)));
Assert.That( new TestDelegate(SomeMethod),
Throws.Exception.TypeOf(typeof(ArgumentException)));
Assert.That( new TestDelegate(SomeMethod),
Throws.TypeOf(typeof(ArgumentException))
.With.Property("Parameter").EqualTo("myParam"));
Assert.That( new TestDelegate(SomeMethod),
Throws.ArgumentException );
Assert.That( new TestDelegate(SomeMethod),
Throws.TargetInvocationException
.With.InnerException.TypeOf(ArgumentException));
// .NET 2.0
Assert.That( SomeMethod,
Throws.TypeOf<ArgumentException>());
Assert.That( SomeMethod,
Throws.Exception.TypeOf<ArgumentException>());
Assert.That( SomeMethod,
Throws.TypeOf<ArgumentException>()
.With.Property("Parameter").EqualTo("myParam"));
Assert.That( SomeMethod, Throws.ArgumentException );
Assert.That( SomeMethod,
Throws.TargetInvocationException
.With.InnerException.TypeOf<ArgumentException>());
</pre></div>
<h4>Notes</h4>
<ol>
<li><b>Throws.Exception</b> may be followed by further constraints,
which are applied to the exception itself as shown in the last two
examples above. It may also be used alone to verify that some
exception has been thrown, without regard to type. This is
not a recommended practice since you should normally know
what exception you are expecting.
<li><b>Throws.TypeOf</b> and <b>Throws.InstanceOf</b> are provided
as a shorter syntax for this common test. They work exactly like
the corresponding forms following <b>Throws.Exception</b>.
<li><b>Throws.TargetInvocationException/b>, <b>Throws.ArgumentException</b>
and <b>Throws.InvalidOperationException</b> provide a shortened form
for some common exceptions.
<li>Used alone, <b>Throws.InnerException</b> simply tests the InnerException
value of the thrown exception. More commonly, it will be used in
combination with a test for the type of the outer exception as shown
in the examples above.
</ol>
</div>
<!-- Submenu -->
<div id="subnav">
<ul>
<li><a href="index.html">NUnit 2.6</a></li>
<ul>
<li><a href="getStarted.html">Getting Started</a></li>
<li><a href="writingTests.html">Writing Tests</a></li>
<ul>
<li><a href="assertions.html">Assertions</a></li>
<li><a href="attributes.html">Attributes</a></li>
<li><a href="constraintModel.html">Constraints</a></li>
<ul>
<li><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="pathConstraints.html">Path Constraints</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 id="current"><a href="throwsConstraint.html">Throws Constraint</a></li>
<li><a href="compoundConstraints.html">Compound Constraints</a></li>
<li><a href="delayedConstraint.html">Delayed Constraint</a></li>
<li><a href="listMapper.html">List Mapper</a></li>
<li><a href="reusableConstraint.html">Reusable Constraint</a></li>
</ul>
<li><a href="testContext.html">Test Context</a></li>
</ul>
<li><a href="runningTests.html">Running Tests</a></li>
<li><a href="extensibility.html">Extensibility</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>
<li><a href="vsTestAdapter.html">NUnit Test Adapter 0.90</a></li>
<ul>
<li><a href="vsTestAdapterLicense.html">License</a></li>
</ul>
<li><a href="&r=2.6.html"></a></li>
<li><a href="&r=2.6.html"></a></li>
</ul>
</div>
<!-- End of Submenu -->
<!-- Standard Footer for NUnit.org -->
<div id="footer">
Copyright © 2012 Charlie Poole. All Rights Reserved.
</div>
<!-- End of Footer -->
</body>
</html>
|