Chromium Code Reviews

Side by Side Diff: lib/unittest.dart

Issue 869053002: unittest: refactor ahead of matcher changes (Closed) Base URL: https://github.com/dart-lang/unittest.git@master
Patch Set: no longer requires matcher changes Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
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 library unittest; 5 library unittest;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:isolate';
10 9
11 import 'package:matcher/matcher.dart' 10 import 'src/configuration.dart';
12 show 11 import 'src/expect.dart';
13 DefaultFailureHandler,
14 configureExpectFailureHandler,
15 TestFailure,
16 wrapAsync;
17 export 'package:matcher/matcher.dart';
18
19 import 'src/utils.dart'; 12 import 'src/utils.dart';
20 13
21 import 'src/configuration.dart'; 14 export 'package:matcher/matcher.dart'
15 hide
16 completes,
17 completion,
18 ErrorFormatter,
19 expect,
20 fail,
21 prints,
22 TestFailure,
23 Throws,
24 throws,
25 throwsA,
26 throwsArgumentError,
27 throwsConcurrentModificationError,
28 throwsCyclicInitializationError,
29 throwsException,
30 throwsFormatException,
31 throwsNoSuchMethodError,
32 throwsNullThrownError,
33 throwsRangeError,
34 throwsStateError,
35 throwsUnimplementedError,
36 throwsUnsupportedError;
37
22 export 'src/configuration.dart'; 38 export 'src/configuration.dart';
39 export 'src/expect.dart';
40 export 'src/simple_configuration.dart';
41 export 'src/future_matchers.dart';
42 export 'src/prints_matcher.dart';
43 export 'src/throws_matcher.dart';
44 export 'src/throws_matchers.dart';
23 45
24 part 'src/simple_configuration.dart';
25 part 'src/group_context.dart'; 46 part 'src/group_context.dart';
26 part 'src/spread_args_helper.dart'; 47 part 'src/spread_args_helper.dart';
27 part 'src/test_case.dart'; 48 part 'src/test_case.dart';
28 part 'src/test_environment.dart'; 49 part 'src/test_environment.dart';
29 50
30 const Symbol _UNITTEST_ENVIRONMENT = #unittest.environment; 51 const Symbol _UNITTEST_ENVIRONMENT = #unittest.environment;
31 52
32 final _TestEnvironment _defaultEnvironment = new _TestEnvironment(); 53 final _TestEnvironment _defaultEnvironment = new _TestEnvironment();
33 54
34 /** 55 /**
(...skipping 368 matching lines...)
403 /// Lazily initializes the test library if not already initialized. 424 /// Lazily initializes the test library if not already initialized.
404 void ensureInitialized() { 425 void ensureInitialized() {
405 _ensureInitialized(true); 426 _ensureInitialized(true);
406 } 427 }
407 428
408 void _ensureInitialized(bool configAutoStart) { 429 void _ensureInitialized(bool configAutoStart) {
409 if (_environment.initialized) { 430 if (_environment.initialized) {
410 return; 431 return;
411 } 432 }
412 _environment.initialized = true; 433 _environment.initialized = true;
413 // Hook our async guard into the matcher library.
414 wrapAsync = (f, [id]) => expectAsync(f, id: id);
415 434
416 _environment.uncaughtErrorMessage = null; 435 _environment.uncaughtErrorMessage = null;
417 436
418 unittestConfiguration.onInit(); 437 unittestConfiguration.onInit();
419 438
420 if (configAutoStart && _config.autoStart) { 439 if (configAutoStart && _config.autoStart) {
421 // Immediately queue the suite up. It will run after a timeout (i.e. after 440 // Immediately queue the suite up. It will run after a timeout (i.e. after
422 // main() has returned). 441 // main() has returned).
423 scheduleMicrotask(runTests); 442 scheduleMicrotask(runTests);
424 } 443 }
(...skipping 48 matching lines...)
473 /// 492 ///
474 /// This allows for multiple invocations of the unittest library in the same 493 /// This allows for multiple invocations of the unittest library in the same
475 /// application instance. 494 /// application instance.
476 /// This is useful when, for example, creating a test runner application which 495 /// This is useful when, for example, creating a test runner application which
477 /// needs to create a new pristine test environment on each invocation to run 496 /// needs to create a new pristine test environment on each invocation to run
478 /// a given set of test. 497 /// a given set of test.
479 dynamic withTestEnvironment(callback()) { 498 dynamic withTestEnvironment(callback()) {
480 return runZoned(callback, 499 return runZoned(callback,
481 zoneValues: {_UNITTEST_ENVIRONMENT: new _TestEnvironment()}); 500 zoneValues: {_UNITTEST_ENVIRONMENT: new _TestEnvironment()});
482 } 501 }
502
503 /// This Function is used by certain Matchers to catch certain exceptions.
nweiz 2015/01/26 22:44:10 "Function" -> "function"
kevmoo 2015/01/27 00:11:30 Done.
504 ///
505 /// Some matchers, like those for Futures and exception testing,
506 /// can fail in asynchronous sections, and throw exceptions.
507 /// A user of this library will typically want to catch and handle
508 /// such exceptions. The [wrapAsync] property is a function that
509 /// can wrap callbacks used by these Matchers so that they can be
510 /// used safely. For example, the unittest library will set this
511 /// to be `expectAsync`. By default this is an identity function.
512 Function wrapAsync = (Function f, [id]) => f;
nweiz 2015/01/26 22:44:10 Since this is now defined in unittest, why doesn't
kevmoo 2015/01/27 00:11:30 Done.
OLDNEW

Powered by Google App Engine