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 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 var stream = new Stream.fromIterable([1, 2, 3]); | 238 var stream = new Stream.fromIterable([1, 2, 3]); |
239 | 239 |
240 stream.listen(expectAsync((number) { | 240 stream.listen(expectAsync((number) { |
241 expect(number, inInclusiveRange(1, 3)); | 241 expect(number, inInclusiveRange(1, 3)); |
242 }, count: 3)); | 242 }, count: 3)); |
243 }); | 243 }); |
244 } | 244 } |
245 ``` | 245 ``` |
246 | 246 |
247 [expectAsync]: http://www.dartdocs.org/documentation/test/latest/index.html#test
/test@id_expectAsync | 247 [expectAsync]: http://www.dartdocs.org/documentation/test/latest/index.html#test
/test@id_expectAsync |
| 248 |
| 249 ## Testing With `barback` |
| 250 |
| 251 Packages using the `barback` transformer system may need to test code that's |
| 252 created or modified using transformers. The test runner handles this using the |
| 253 `--pub-serve` option, which tells it to load the test code from a `pub serve` |
| 254 instance rather than from the filesystem. **This feature is only supported on |
| 255 Dart `1.9.2` and higher.** |
| 256 |
| 257 Before using the `--pub-serve` option, add the `test/pub_serve` transformer to |
| 258 your `pubspec.yaml`. This transformer adds the necessary bootstrapping code that |
| 259 allows the test runner to load your tests properly: |
| 260 |
| 261 ```yaml |
| 262 transformers: |
| 263 - test/pub_serve: |
| 264 $include: test/**_test.dart |
| 265 ``` |
| 266 |
| 267 Then, start up `pub serve`. Make sure to pay attention to which port it's using |
| 268 to serve your `test/` directory: |
| 269 |
| 270 ```shell |
| 271 $ pub serve |
| 272 Loading source assets... |
| 273 Loading test/pub_serve transformers... |
| 274 Serving my_app web on http://localhost:8080 |
| 275 Serving my_app test on http://localhost:8081 |
| 276 Build completed successfully |
| 277 ``` |
| 278 |
| 279 In this case, the port is `8081`. In another terminal, pass this port to |
| 280 `--pub-serve` and otherwise invoke `pub run test` as normal: |
| 281 |
| 282 ```shell |
| 283 $ pub run test --pub-serve=8081 -p chrome |
| 284 "pub serve" is compiling test/my_app_test.dart... |
| 285 "pub serve" is compiling test/utils_test.dart... |
| 286 00:00 +42: All tests passed! |
| 287 ``` |
OLD | NEW |