Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(447)

Side by Side Diff: pkg/unittest/lib/src/test_case.dart

Issue 208273009: pkg/unittest: Removed references to expectAsync[Until]X in docs (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/unittest/lib/src/spread_args_helper.dart ('k') | pkg/unittest/lib/src/utils.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 part of unittest; 5 part of unittest;
6 6
7 /** 7 /// Represents the state for an individual unit test.
8 * Represents the state for an individual unit test. 8 ///
9 * 9 /// Create by calling [test] or [solo_test].
10 * Create by calling [test] or [solo_test].
11 */
12 class TestCase { 10 class TestCase {
13 /** Identifier for this test. */ 11 /// Identifier for this test.
14 final int id; 12 final int id;
15 13
16 /** A description of what the test is specifying. */ 14 /// A description of what the test is specifying.
17 final String description; 15 final String description;
18 16
19 /** The setup function to call before the test, if any. */ 17 /// The setup function to call before the test, if any.
20 final Function _setUp; 18 final Function _setUp;
21 19
22 /** The teardown function to call after the test, if any. */ 20 /// The teardown function to call after the test, if any.
23 final Function _tearDown; 21 final Function _tearDown;
24 22
25 /** The body of the test case. */ 23 /// The body of the test case.
26 final TestFunction _testFunction; 24 final TestFunction _testFunction;
27 25
28 /** 26 /// Remaining number of callbacks functions that must reach a 'done' state
29 * Remaining number of callbacks functions that must reach a 'done' state 27 /// to wait for before the test completes.
30 * to wait for before the test completes.
31 */
32 int _callbackFunctionsOutstanding = 0; 28 int _callbackFunctionsOutstanding = 0;
33 29
34 String _message = ''; 30 String _message = '';
35 /** Error or failure message. */ 31 /// Error or failure message.
36 String get message => _message; 32 String get message => _message;
37 33
38 String _result; 34 String _result;
39 /** 35 /// One of [PASS], [FAIL], [ERROR], or [:null:] if the test hasn't run yet.
40 * One of [PASS], [FAIL], [ERROR], or [:null:] if the test hasn't run yet.
41 */
42 String get result => _result; 36 String get result => _result;
43 37
44 /** Returns whether this test case passed. */ 38 /// Returns whether this test case passed.
45 bool get passed => _result == PASS; 39 bool get passed => _result == PASS;
46 40
47 StackTrace _stackTrace; 41 StackTrace _stackTrace;
48 /** Stack trace associated with this test, or [:null:] if it succeeded. */ 42 /// Stack trace associated with this test, or [:null:] if it succeeded.
49 StackTrace get stackTrace => _stackTrace; 43 StackTrace get stackTrace => _stackTrace;
50 44
51 /** The group (or groups) under which this test is running. */ 45 /// The group (or groups) under which this test is running.
52 final String currentGroup; 46 final String currentGroup;
53 47
54 DateTime _startTime; 48 DateTime _startTime;
55 DateTime get startTime => _startTime; 49 DateTime get startTime => _startTime;
56 50
57 Duration _runningTime; 51 Duration _runningTime;
58 Duration get runningTime => _runningTime; 52 Duration get runningTime => _runningTime;
59 53
60 bool _enabled = true; 54 bool _enabled = true;
61 55
(...skipping 16 matching lines...) Expand all
78 } 72 }
79 if (result == null || result == PASS) { 73 if (result == null || result == PASS) {
80 if (e is TestFailure) { 74 if (e is TestFailure) {
81 _fail("$e", stack); 75 _fail("$e", stack);
82 } else { 76 } else {
83 _error("$stage failed: Caught $e", stack); 77 _error("$stage failed: Caught $e", stack);
84 } 78 }
85 } 79 }
86 }; 80 };
87 81
88 /** 82 /// Perform any associated [_setUp] function and run the test. Returns
89 * Perform any associated [_setUp] function and run the test. Returns 83 /// a [Future] that can be used to schedule the next test. If the test runs
90 * a [Future] that can be used to schedule the next test. If the test runs 84 /// to completion synchronously, or is disabled, null is returned, to
91 * to completion synchronously, or is disabled, null is returned, to 85 /// tell unittest to schedule the next test immediately.
92 * tell unittest to schedule the next test immediately.
93 */
94 Future _run() { 86 Future _run() {
95 if (!enabled) return new Future.value(); 87 if (!enabled) return new Future.value();
96 88
97 _result = _stackTrace = null; 89 _result = _stackTrace = null;
98 _message = ''; 90 _message = '';
99 91
100 // Avoid calling [new Future] to avoid issue 11911. 92 // Avoid calling [new Future] to avoid issue 11911.
101 return new Future.value().then((_) { 93 return new Future.value().then((_) {
102 if (_setUp != null) return _setUp(); 94 if (_setUp != null) return _setUp();
103 }).catchError(_errorHandler('Setup')) 95 }).catchError(_errorHandler('Setup')).then((_) {
104 .then((_) { 96 // Skip the test if setup failed.
105 // Skip the test if setup failed. 97 if (result != null) return new Future.value();
106 if (result != null) return new Future.value(); 98 _config.onTestStart(this);
107 _config.onTestStart(this); 99 _startTime = new DateTime.now();
108 _startTime = new DateTime.now(); 100 _runningTime = null;
109 _runningTime = null; 101 ++_callbackFunctionsOutstanding;
110 ++_callbackFunctionsOutstanding; 102 return _testFunction();
111 return _testFunction(); 103 }).catchError(_errorHandler('Test')).then((_) {
112 }) 104 _markCallbackComplete();
113 .catchError(_errorHandler('Test')) 105 if (result == null) {
114 .then((_) { 106 // Outstanding callbacks exist; we need to return a Future.
115 _markCallbackComplete(); 107 _testComplete = new Completer();
116 if (result == null) { 108 return _testComplete.future.whenComplete(() {
117 // Outstanding callbacks exist; we need to return a Future. 109 if (_tearDown != null) {
118 _testComplete = new Completer();
119 return _testComplete.future.whenComplete(() {
120 if (_tearDown != null) {
121 return _tearDown();
122 }
123 }).catchError(_errorHandler('Teardown'));
124 } else if (_tearDown != null) {
125 return _tearDown(); 110 return _tearDown();
126 } 111 }
127 }) 112 }).catchError(_errorHandler('Teardown'));
128 .catchError(_errorHandler('Teardown')); 113 } else if (_tearDown != null) {
114 return _tearDown();
115 }
116 }).catchError(_errorHandler('Teardown'));
129 } 117 }
130 118
131 // Set the results, notify the config, and return true if this 119 // Set the results, notify the config, and return true if this
132 // is the first time the result is being set. 120 // is the first time the result is being set.
133 void _setResult(String testResult, String messageText, StackTrace stack) { 121 void _setResult(String testResult, String messageText, StackTrace stack) {
134 _message = messageText; 122 _message = messageText;
135 _stackTrace = _getTrace(stack); 123 _stackTrace = _getTrace(stack);
136 if (_stackTrace == null) _stackTrace = stack; 124 if (_stackTrace == null) _stackTrace = stack;
137 if (result == null) { 125 if (result == null) {
138 _result = testResult; 126 _result = testResult;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 171 }
184 172
185 void _markCallbackComplete() { 173 void _markCallbackComplete() {
186 if (--_callbackFunctionsOutstanding == 0 && !isComplete) { 174 if (--_callbackFunctionsOutstanding == 0 && !isComplete) {
187 _pass(); 175 _pass();
188 } 176 }
189 } 177 }
190 178
191 String toString() => _result != null ? "$description: $result" : description; 179 String toString() => _result != null ? "$description: $result" : description;
192 } 180 }
OLDNEW
« no previous file with comments | « pkg/unittest/lib/src/spread_args_helper.dart ('k') | pkg/unittest/lib/src/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698