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

Side by Side Diff: test/runner/engine_test.dart

Issue 2515303002: Add expectAsyncX and expectAsyncUntilX methods, and deprecate the old methods. (Closed)
Patch Set: Mark parameter types as Object. Created 4 years, 1 month 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
« no previous file with comments | « test/runner/configuration/top_level_test.dart ('k') | test/runner/load_suite_test.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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 import 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:test/src/backend/group.dart'; 7 import 'package:test/src/backend/group.dart';
8 import 'package:test/src/backend/state.dart'; 8 import 'package:test/src/backend/state.dart';
9 import 'package:test/src/runner/engine.dart'; 9 import 'package:test/src/runner/engine.dart';
10 import 'package:test/test.dart'; 10 import 'package:test/test.dart';
11 11
12 import '../utils.dart'; 12 import '../utils.dart';
13 13
14 void main() { 14 void main() {
15 test("runs each test in each suite in order", () async { 15 test("runs each test in each suite in order", () async {
16 var testsRun = 0; 16 var testsRun = 0;
17 var tests = declare(() { 17 var tests = declare(() {
18 for (var i = 0; i < 4; i++) { 18 for (var i = 0; i < 4; i++) {
19 test("test ${i + 1}", expectAsync(() { 19 test("test ${i + 1}", expectAsync0(() {
20 expect(testsRun, equals(i)); 20 expect(testsRun, equals(i));
21 testsRun++; 21 testsRun++;
22 }, max: 1)); 22 }, max: 1));
23 } 23 }
24 }); 24 });
25 25
26 var engine = new Engine.withSuites([ 26 var engine = new Engine.withSuites([
27 runnerSuite(new Group.root(tests.take(2))), 27 runnerSuite(new Group.root(tests.take(2))),
28 runnerSuite(new Group.root(tests.skip(2))) 28 runnerSuite(new Group.root(tests.skip(2)))
29 ]); 29 ]);
30 30
31 await engine.run(); 31 await engine.run();
32 expect(testsRun, equals(4)); 32 expect(testsRun, equals(4));
33 }); 33 });
34 34
35 test("runs tests in a suite added after run() was called", () { 35 test("runs tests in a suite added after run() was called", () {
36 var testsRun = 0; 36 var testsRun = 0;
37 var tests = declare(() { 37 var tests = declare(() {
38 for (var i = 0; i < 4; i++) { 38 for (var i = 0; i < 4; i++) {
39 test("test ${i + 1}", expectAsync(() { 39 test("test ${i + 1}", expectAsync0(() {
40 expect(testsRun, equals(i)); 40 expect(testsRun, equals(i));
41 testsRun++; 41 testsRun++;
42 }, max: 1)); 42 }, max: 1));
43 } 43 }
44 }); 44 });
45 45
46 var engine = new Engine(); 46 var engine = new Engine();
47 expect(engine.run().then((_) { 47 expect(engine.run().then((_) {
48 expect(testsRun, equals(4)); 48 expect(testsRun, equals(4));
49 }), completes); 49 }), completes);
50 50
51 engine.suiteSink.add(runnerSuite(new Group.root(tests))); 51 engine.suiteSink.add(runnerSuite(new Group.root(tests)));
52 engine.suiteSink.close(); 52 engine.suiteSink.close();
53 }); 53 });
54 54
55 test("emits each test before it starts running and after the previous test " 55 test("emits each test before it starts running and after the previous test "
56 "finished", () { 56 "finished", () {
57 var testsRun = 0; 57 var testsRun = 0;
58 var engine = declareEngine(() { 58 var engine = declareEngine(() {
59 for (var i = 0; i < 3; i++) { 59 for (var i = 0; i < 3; i++) {
60 test("test ${i + 1}", expectAsync(() => testsRun++, max: 1)); 60 test("test ${i + 1}", expectAsync0(() => testsRun++, max: 1));
61 } 61 }
62 }); 62 });
63 63
64 engine.onTestStarted.listen(expectAsync((liveTest) { 64 engine.onTestStarted.listen(expectAsync1((liveTest) {
65 // [testsRun] should be one less than the test currently running. 65 // [testsRun] should be one less than the test currently running.
66 expect(liveTest.test.name, equals("test ${testsRun + 1}")); 66 expect(liveTest.test.name, equals("test ${testsRun + 1}"));
67 67
68 // [Engine.onTestStarted] is guaranteed to fire before the first 68 // [Engine.onTestStarted] is guaranteed to fire before the first
69 // [LiveTest.onStateChange]. 69 // [LiveTest.onStateChange].
70 expect(liveTest.onStateChange.first, 70 expect(liveTest.onStateChange.first,
71 completion(equals(const State(Status.running, Result.success)))); 71 completion(equals(const State(Status.running, Result.success))));
72 }, count: 3, max: 3)); 72 }, count: 3, max: 3));
73 73
74 return engine.run(); 74 return engine.run();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 var engine = new Engine.withSuites([]); 110 var engine = new Engine.withSuites([]);
111 expect(engine.run(), completes); 111 expect(engine.run(), completes);
112 expect(engine.run, throwsStateError); 112 expect(engine.run, throwsStateError);
113 }); 113 });
114 114
115 test("runs tearDown after a test times out", () { 115 test("runs tearDown after a test times out", () {
116 // Declare this here so the expect is in the context of this test, rather 116 // Declare this here so the expect is in the context of this test, rather
117 // than the inner test. 117 // than the inner test.
118 var secondTestStarted = false; 118 var secondTestStarted = false;
119 var firstTestFinished = false; 119 var firstTestFinished = false;
120 var tearDownBody = expectAsync(() { 120 var tearDownBody = expectAsync0(() {
121 expect(secondTestStarted, isFalse); 121 expect(secondTestStarted, isFalse);
122 expect(firstTestFinished, isFalse); 122 expect(firstTestFinished, isFalse);
123 }); 123 });
124 124
125 var engine = declareEngine(() { 125 var engine = declareEngine(() {
126 // This ensures that the first test doesn't actually finish until the 126 // This ensures that the first test doesn't actually finish until the
127 // second test runs. 127 // second test runs.
128 var firstTestCompleter = new Completer(); 128 var firstTestCompleter = new Completer();
129 129
130 group("group", () { 130 group("group", () {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 expect(bodyRun, isTrue); 166 expect(bodyRun, isTrue);
167 }); 167 });
168 168
169 test("exposes a LiveTest that emits the correct states", () { 169 test("exposes a LiveTest that emits the correct states", () {
170 var tests = declare(() { 170 var tests = declare(() {
171 test("test", () {}, skip: true); 171 test("test", () {}, skip: true);
172 }); 172 });
173 173
174 var engine = new Engine.withSuites([runnerSuite(new Group.root(tests))]); 174 var engine = new Engine.withSuites([runnerSuite(new Group.root(tests))]);
175 175
176 engine.onTestStarted.listen(expectAsync((liveTest) { 176 engine.onTestStarted.listen(expectAsync1((liveTest) {
177 expect(liveTest, same(engine.liveTests.single)); 177 expect(liveTest, same(engine.liveTests.single));
178 expect(liveTest.test.name, equals(tests.single.name)); 178 expect(liveTest.test.name, equals(tests.single.name));
179 179
180 var i = 0; 180 var i = 0;
181 liveTest.onStateChange.listen(expectAsync((state) { 181 liveTest.onStateChange.listen(expectAsync1((state) {
182 if (i == 0) { 182 if (i == 0) {
183 expect(state, equals(const State(Status.running, Result.success))); 183 expect(state, equals(const State(Status.running, Result.success)));
184 } else if (i == 1) { 184 } else if (i == 1) {
185 expect(state, equals(const State(Status.running, Result.skipped))); 185 expect(state, equals(const State(Status.running, Result.skipped)));
186 } else if (i == 2) { 186 } else if (i == 2) {
187 expect(state, equals(const State(Status.complete, Result.skipped))); 187 expect(state, equals(const State(Status.complete, Result.skipped)));
188 } 188 }
189 i++; 189 i++;
190 }, count: 3)); 190 }, count: 3));
191 191
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 test("exposes a LiveTest that emits the correct states", () { 224 test("exposes a LiveTest that emits the correct states", () {
225 var entries = declare(() { 225 var entries = declare(() {
226 group("group", () { 226 group("group", () {
227 test("test", () => bodyRun = true); 227 test("test", () => bodyRun = true);
228 }, skip: true); 228 }, skip: true);
229 }); 229 });
230 230
231 var engine = new Engine.withSuites( 231 var engine = new Engine.withSuites(
232 [runnerSuite(new Group.root(entries))]); 232 [runnerSuite(new Group.root(entries))]);
233 233
234 engine.onTestStarted.listen(expectAsync((liveTest) { 234 engine.onTestStarted.listen(expectAsync1((liveTest) {
235 expect(liveTest, same(engine.liveTests.single)); 235 expect(liveTest, same(engine.liveTests.single));
236 expect(liveTest.test.name, equals("group test")); 236 expect(liveTest.test.name, equals("group test"));
237 237
238 var i = 0; 238 var i = 0;
239 liveTest.onStateChange.listen(expectAsync((state) { 239 liveTest.onStateChange.listen(expectAsync1((state) {
240 if (i == 0) { 240 if (i == 0) {
241 expect(state, equals(const State(Status.running, Result.success))); 241 expect(state, equals(const State(Status.running, Result.success)));
242 } else if (i == 1) { 242 } else if (i == 1) {
243 expect(state, equals(const State(Status.running, Result.skipped))); 243 expect(state, equals(const State(Status.running, Result.skipped)));
244 } else if (i == 2) { 244 } else if (i == 2) {
245 expect(state, equals(const State(Status.complete, Result.skipped))); 245 expect(state, equals(const State(Status.complete, Result.skipped)));
246 } 246 }
247 i++; 247 i++;
248 }, count: 3)); 248 }, count: 3));
249 249
250 expect(liveTest.onComplete, completes); 250 expect(liveTest.onComplete, completes);
251 })); 251 }));
252 252
253 return engine.run(); 253 return engine.run();
254 }); 254 });
255 }); 255 });
256 } 256 }
OLDNEW
« no previous file with comments | « test/runner/configuration/top_level_test.dart ('k') | test/runner/load_suite_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698