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

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

Issue 10579008: Added test setup/teardown. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 6 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 /** 5 /**
6 * testcase.dart: this file is sourced by unittest.dart. It defines [TestCase] 6 * testcase.dart: this file is sourced by unittest.dart. It defines [TestCase]
7 * and assumes unittest defines the type [TestFunction]. 7 * and assumes unittest defines the type [TestFunction].
8 */ 8 */
9 9
10
11 /** Summarizes information about a single test case. */ 10 /** Summarizes information about a single test case. */
12 class TestCase { 11 class TestCase {
13 /** Identifier for this test. */ 12 /** Identifier for this test. */
14 final int id; 13 final int id;
15 14
16 /** A description of what the test is specifying. */ 15 /** A description of what the test is specifying. */
17 final String description; 16 final String description;
18 17
18 /** The setup function to call before the test, if any. */
19 final _setup;
20
21 /** The teardown function to call after the test, if any. */
22 final _teardown;
23
19 /** The body of the test case. */ 24 /** The body of the test case. */
20 final TestFunction test; 25 final TestFunction test;
21 26
22 /** Total number of callbacks to wait for before the test completes. */ 27 /** Total number of callbacks to wait for before the test completes. */
23 int callbacks; 28 int callbacks;
24 29
25 /** Error or failure message. */ 30 /** Error or failure message. */
26 String message = ''; 31 String message = '';
27 32
28 /** 33 /**
29 * One of [_PASS], [_FAIL], or [_ERROR] or [null] if the test hasn't run yet. 34 * One of [_PASS], [_FAIL], or [_ERROR] or [null] if the test hasn't run yet.
30 */ 35 */
31 String result; 36 String result;
32 37
33 /** Stack trace associated with this test, or null if it succeeded. */ 38 /** Stack trace associated with this test, or null if it succeeded. */
34 String stackTrace; 39 String stackTrace;
35 40
36 /** The group (or groups) under which this test is running. */ 41 /** The group (or groups) under which this test is running. */
37 final String currentGroup; 42 final String currentGroup;
38 43
39 Date startTime; 44 Date startTime;
40 45
41 Duration runningTime; 46 Duration runningTime;
42 47
43 TestCase(this.id, this.description, this.test, this.callbacks) 48 TestCase(this.id, this.description, this.test, this.callbacks)
44 : currentGroup = _currentGroup; 49 : currentGroup = _currentGroup,
50 _setup = _testSetup,
51 _teardown = _testTeardown;
45 52
46 bool get isComplete() => result != null; 53 bool get isComplete() => result != null;
47 54
55 void run() {
56 if (_setup != null) {
57 _setup();
58 }
59 try {
60 test();
61 } finally {
62 if (_teardown != null) {
63 _teardown();
64 }
65 }
66 }
67
48 void pass() { 68 void pass() {
49 result = _PASS; 69 result = _PASS;
50 } 70 }
51 71
52 void fail(String message, String stackTrace) { 72 void fail(String message, String stackTrace) {
53 result = _FAIL; 73 result = _FAIL;
54 this.message = message; 74 this.message = message;
55 this.stackTrace = stackTrace; 75 this.stackTrace = stackTrace;
56 } 76 }
57 77
58 void error(String message, String stackTrace) { 78 void error(String message, String stackTrace) {
59 result = _ERROR; 79 result = _ERROR;
60 this.message = message; 80 this.message = message;
61 this.stackTrace = stackTrace; 81 this.stackTrace = stackTrace;
62 } 82 }
63 } 83 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698