OLD | NEW |
1 `test` provides a standard way of writing and running tests in Dart. | 1 `test` provides a standard way of writing and running tests in Dart. |
2 | 2 |
3 ## Writing Tests | 3 ## Writing Tests |
4 | 4 |
5 Tests are specified using the top-level [`test()`][test] function, and test | 5 Tests are specified using the top-level [`test()`][test] function, and test |
6 assertions are made using [`expect()`][expect]: | 6 assertions are made using [`expect()`][expect]: |
7 | 7 |
8 [test]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test@i
d_test | 8 [test]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test@i
d_test |
9 [expect]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test
@id_expect | 9 [expect]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test
@id_expect |
10 | 10 |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 | 275 |
276 stream.listen(expectAsync((number) { | 276 stream.listen(expectAsync((number) { |
277 expect(number, inInclusiveRange(1, 3)); | 277 expect(number, inInclusiveRange(1, 3)); |
278 }, count: 3)); | 278 }, count: 3)); |
279 }); | 279 }); |
280 } | 280 } |
281 ``` | 281 ``` |
282 | 282 |
283 [expectAsync]: http://www.dartdocs.org/documentation/test/latest/index.html#test
/test@id_expectAsync | 283 [expectAsync]: http://www.dartdocs.org/documentation/test/latest/index.html#test
/test@id_expectAsync |
284 | 284 |
| 285 ## Running Tests with Custom HTML |
| 286 |
| 287 By default, the test runner will generate its own empty HTML file for browser |
| 288 tests. However, tests that need custom HTML can create their own files. These |
| 289 files have three requirements: |
| 290 |
| 291 * They must have the same name as the test, with `.dart` replaced by `.html`. |
| 292 |
| 293 * They must contain a `link` tag with `rel="x-dart-test"` and an `href` |
| 294 attribute pointing to the test script. |
| 295 |
| 296 * They must contain `<script src="packages/test/dart.js"></script>`. |
| 297 |
| 298 For example, if you had a test called `custom_html_test.dart`, you might write |
| 299 the following HTML file: |
| 300 |
| 301 ```html |
| 302 <!doctype html> |
| 303 <!-- custom_html_test.html --> |
| 304 <html> |
| 305 <head> |
| 306 <title>Custom HTML Test</title> |
| 307 <link rel="x-dart-test" href="custom_html_test.dart"> |
| 308 <script src="packages/test/dart.js"></script> |
| 309 </head> |
| 310 <body> |
| 311 // ... |
| 312 </body> |
| 313 </html> |
| 314 ``` |
| 315 |
285 ## Configuring Tests | 316 ## Configuring Tests |
286 | 317 |
287 ### Timeouts | 318 ### Timeouts |
288 | 319 |
289 By default, tests will time out after 30 seconds of inactivity. However, this | 320 By default, tests will time out after 30 seconds of inactivity. However, this |
290 can be configured on a per-test, -group, or -suite basis. To change the timeout | 321 can be configured on a per-test, -group, or -suite basis. To change the timeout |
291 for a test suite, put a `@Timeout` annotation at the top of the file: | 322 for a test suite, put a `@Timeout` annotation at the top of the file: |
292 | 323 |
293 ```dart | 324 ```dart |
294 @Timeout(new Duration(seconds: 45)) | 325 @Timeout(new Duration(seconds: 45)) |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 | 388 |
358 In this case, the port is `8081`. In another terminal, pass this port to | 389 In this case, the port is `8081`. In another terminal, pass this port to |
359 `--pub-serve` and otherwise invoke `pub run test:test` as normal: | 390 `--pub-serve` and otherwise invoke `pub run test:test` as normal: |
360 | 391 |
361 ```shell | 392 ```shell |
362 $ pub run test:test --pub-serve=8081 -p chrome | 393 $ pub run test:test --pub-serve=8081 -p chrome |
363 "pub serve" is compiling test/my_app_test.dart... | 394 "pub serve" is compiling test/my_app_test.dart... |
364 "pub serve" is compiling test/utils_test.dart... | 395 "pub serve" is compiling test/utils_test.dart... |
365 00:00 +42: All tests passed! | 396 00:00 +42: All tests passed! |
366 ``` | 397 ``` |
OLD | NEW |