OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * A library for writing dart unit tests. | 6 * A library for writing dart unit tests. |
7 * | 7 * |
8 * To import this library, specify the relative path to | 8 * To import this library, specify the relative path to |
9 * lib/unittest/unittest.dart. | 9 * lib/unittest/unittest.dart. |
10 * | 10 * |
11 * ##Concepts## | 11 * ##Concepts## |
12 * | 12 * |
13 * * Tests: Tests are specified via the top-level function [test], they can be | 13 * * Tests: Tests are specified via the top-level function [test], they can be |
14 * organized together using [group]. | 14 * organized together using [group]. |
15 * * Checks: Test expectations can be specified via [expect] (see methods in | 15 * * Checks: Test expectations can be specified via [expect] |
16 * [Expectation]), [expectThrow], or using assertions with the [Expect] | |
17 * class. | |
18 * * Configuration: The framework can be adapted by calling [configure] with a | 16 * * Configuration: The framework can be adapted by calling [configure] with a |
19 * [Configuration]. Common configurations can be found in this package | 17 * [Configuration]. Common configurations can be found in this package |
20 * under: 'dom\_config.dart', 'html\_config.dart', and 'vm\_config.dart'. | 18 * under: 'dom\_config.dart', 'html\_config.dart', and 'vm\_config.dart'. |
21 * | 19 * |
22 * ##Examples## | 20 * ##Examples## |
23 * | 21 * |
24 * A trivial test: | 22 * A trivial test: |
25 * | 23 * |
26 * #import('path-to-dart/lib/unittest/unitest.dart'); | 24 * #import('path-to-dart/lib/unittest/unitest.dart'); |
27 * main() { | 25 * main() { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 * // indicate that the asynchronous callback was invoked. | 116 * // indicate that the asynchronous callback was invoked. |
119 * async.complete(); | 117 * async.complete(); |
120 * }), 0); | 118 * }), 0); |
121 * }); | 119 * }); |
122 * | 120 * |
123 */ | 121 */ |
124 #library('unittest'); | 122 #library('unittest'); |
125 | 123 |
126 #import('dart:isolate'); | 124 #import('dart:isolate'); |
127 | 125 |
| 126 #source('collection_matchers.dart'); |
128 #source('config.dart'); | 127 #source('config.dart'); |
129 #source('expectation.dart'); | 128 #source('core_matchers.dart'); |
| 129 #source('description.dart'); |
| 130 #source('expect.dart'); |
| 131 #source('interfaces.dart'); |
| 132 #source('map_matchers.dart'); |
| 133 #source('matcher.dart'); |
| 134 #source('numeric_matchers.dart'); |
| 135 #source('operator_matchers.dart'); |
| 136 #source('string_matchers.dart'); |
130 #source('test_case.dart'); | 137 #source('test_case.dart'); |
131 | 138 |
132 /** [Configuration] used by the unittest library. */ | 139 /** [Configuration] used by the unittest library. */ |
133 Configuration _config = null; | 140 Configuration _config = null; |
134 | 141 |
135 /** Set the [Configuration] used by the unittest library. */ | 142 /** Set the [Configuration] used by the unittest library. */ |
136 void configure(Configuration config) { | 143 void configure(Configuration config) { |
137 _config = config; | 144 _config = config; |
138 } | 145 } |
139 | 146 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 int _state = _UNINITIALIZED; | 179 int _state = _UNINITIALIZED; |
173 String _uncaughtErrorMessage = null; | 180 String _uncaughtErrorMessage = null; |
174 | 181 |
175 final _PASS = 'pass'; | 182 final _PASS = 'pass'; |
176 final _FAIL = 'fail'; | 183 final _FAIL = 'fail'; |
177 final _ERROR = 'error'; | 184 final _ERROR = 'error'; |
178 | 185 |
179 /** If set, then all other test cases will be ignored. */ | 186 /** If set, then all other test cases will be ignored. */ |
180 TestCase _soloTest; | 187 TestCase _soloTest; |
181 | 188 |
182 /** Creates an expectation for the given value. */ | |
183 Expectation expect(value) => new Expectation(value); | |
184 | |
185 /** | 189 /** |
186 * Evaluates the [function] and validates that it throws an exception. If | 190 * Evaluates the [function] and validates that it throws an exception. If |
187 * [callback] is provided, then it will be invoked with the thrown exception. | 191 * [callback] is provided, then it will be invoked with the thrown exception. |
188 * The callback may do any validation it wants. In addition, if it returns | 192 * The callback may do any validation it wants. In addition, if it returns |
189 * `false`, that also indicates an expectation failure. | 193 * `false`, that also indicates an expectation failure. |
190 */ | 194 */ |
191 void expectThrow(function, [bool callback(exception)]) { | 195 void expectThrow(function, [bool callback(exception)]) { |
192 bool threw = false; | 196 bool threw = false; |
193 try { | 197 try { |
194 function(); | 198 function(); |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 } | 584 } |
581 _config.onInit(); | 585 _config.onInit(); |
582 | 586 |
583 // Immediately queue the suite up. It will run after a timeout (i.e. after | 587 // Immediately queue the suite up. It will run after a timeout (i.e. after |
584 // main() has returned). | 588 // main() has returned). |
585 _defer(_runTests); | 589 _defer(_runTests); |
586 } | 590 } |
587 | 591 |
588 /** Signature for a test function. */ | 592 /** Signature for a test function. */ |
589 typedef void TestFunction(); | 593 typedef void TestFunction(); |
OLD | NEW |