Index: pkg/unittest/lib/unittest.dart |
diff --git a/pkg/unittest/lib/unittest.dart b/pkg/unittest/lib/unittest.dart |
index 5fa2ae9ed66f5ecb68ce6de8ad56f3d74c4c5177..db8b3d8969c938c43fbd039cb22da462a74d1b97 100644 |
--- a/pkg/unittest/lib/unittest.dart |
+++ b/pkg/unittest/lib/unittest.dart |
@@ -83,9 +83,9 @@ |
* that callback is run. A count argument can be provided to specify the number |
* of times the callback should be called (the default is 1). |
* |
+ * import 'dart:async'; |
* import 'package:unittest/unittest.dart'; |
- * import 'dart:isolate'; |
- * main() { |
+ * void main() { |
* test('callback is executed once', () { |
* // wrap the callback of an asynchronous call with [expectAsync0] if |
* // the callback takes 0 arguments... |
@@ -105,13 +105,12 @@ |
* }); |
* } |
* |
- * expectAsyncX() will wrap the callback code in a try/catch handler to handle |
- * exceptions (treated as test failures). There may be times when the number of |
- * times a callback should be called is non-deterministic. In this case a dummy |
- * callback can be created with expectAsync0((){}) and this can be called from |
- * the real callback when it is finally complete. In this case the body of the |
- * callback should be protected within a call to guardAsync(); this will ensure |
- * that exceptions are properly handled. |
+ * expectAsyncX() will wrap the callback code and block the completion of the |
+ * test until the wrapped callback has been called the specified number of times |
+ * -- the default is 1. There may be times when the number of times a callback |
+ * should be called is non-deterministic. In this case a dummy callback can be |
+ * created with expectAsync0((){}) and this can be called from the real callback |
+ * when it is finally complete. |
* |
* A variation on this is expectAsyncUntilX(), which takes a callback as the |
* first parameter and a predicate function as the second parameter; after each |
@@ -121,10 +120,21 @@ |
* Test functions can return [Future]s, which provide another way of doing |
* asynchronous tests. The test framework will handle exceptions thrown by |
* the Future, and will advance to the next test when the Future is complete. |
- * It is still important to use expectAsync/guardAsync with any parts of the |
- * test that may be invoked from a top level context (for example, with |
- * Timer.run()], as the Future exception handler may not capture exceptions |
- * in such code. |
+ * |
+ * import 'dart:async'; |
+ * import 'package:unittest/unittest.dart'; |
+ * void main() { |
+ * test('test that time has passed', () { |
+ * var duration = const Duration(milliseconds: 200); |
+ * var time = new DateTime.now(); |
+ * |
+ * return new Future.delayed(duration).then((_) { |
+ * var delta = new DateTime.now().difference(time); |
+ * |
+ * expect(delta, greaterThanOrEqualTo(duration)); |
+ * }); |
+ * }); |
+ * } |
* |
* Note: Due to some language limitations we have to use different functions |
* depending on the number of positional arguments of the callback. In the |