Index: pkg/unittest/lib/src/test_case.dart |
diff --git a/pkg/unittest/lib/src/test_case.dart b/pkg/unittest/lib/src/test_case.dart |
index 67b791efb96a55144daa64e7f899667c36660b52..cffe3b7c98b4d52e1adba229e7df6b99daa57ad2 100644 |
--- a/pkg/unittest/lib/src/test_case.dart |
+++ b/pkg/unittest/lib/src/test_case.dart |
@@ -41,9 +41,9 @@ class TestCase { |
*/ |
String get result => _result; |
- String _stackTrace; |
+ Trace _stackTrace; |
/** Stack trace associated with this test, or [null] if it succeeded. */ |
- String get stackTrace => _stackTrace; |
+ Trace get stackTrace => _stackTrace; |
/** The group (or groups) under which this test is running. */ |
final String currentGroup; |
@@ -82,11 +82,9 @@ class TestCase { |
var f = testFunction(); |
--_callbackFunctionsOutstanding; |
if (f is Future) { |
- return f.then((_) => _finishTest()) |
- .catchError((error) { |
- var stack = getAttachedStackTrace(error); |
- _registerException(this, error, stack); |
- }); |
+ return f.then((_) => _finishTest()).catchError((error) { |
+ _registerException(this, error, getAttachedStackTrace(error)); |
+ }); |
} else { |
_finishTest(); |
return null; |
@@ -113,18 +111,17 @@ class TestCase { |
_doneTeardown = false; |
var rtn = setUp == null ? null : setUp(); |
if (rtn is Future) { |
- rtn.then((_) => _runTest()) |
- .catchError((e) { |
- _prepTest(); |
- // Calling error() will result in the tearDown being done. |
- // One could debate whether tearDown should be done after |
- // a failed setUp. There is no right answer, but doing it |
- // seems to be the more conservative approach, because |
- // unittest will not stop at a test failure. |
- var stack = getAttachedStackTrace(e); |
- if (stack == null) stack = ''; |
- error("$description: Test setup failed: $e", "$stack"); |
- }); |
+ rtn.then((_) => _runTest()).catchError((e) { |
+ _prepTest(); |
+ // Calling error() will result in the tearDown being done. |
+ // One could debate whether tearDown should be done after |
+ // a failed setUp. There is no right answer, but doing it |
+ // seems to be the more conservative approach, because |
+ // unittest will not stop at a test failure. |
+ error( |
+ "$description: Test setup failed: $e", |
+ getAttachedStackTrace(e)); |
+ }); |
} else { |
var f = _runTest(); |
if (f != null) { |
@@ -147,9 +144,9 @@ class TestCase { |
// Set the results, notify the config, and return true if this |
// is the first time the result is being set. |
- void _setResult(String testResult, String messageText, String stack) { |
+ void _setResult(String testResult, String messageText, stack) { |
_message = messageText; |
- _stackTrace = _formatStack(stack); |
+ _stackTrace = _getTrace(stack); |
if (result == null) { |
_result = testResult; |
_config.onTestResult(this); |
@@ -159,9 +156,7 @@ class TestCase { |
} |
} |
- void _complete(String testResult, |
- [String messageText = '', |
- String stack = '']) { |
+ void _complete(String testResult, [String messageText = '', stack]) { |
if (runningTime == null) { |
// The startTime can be `null` if an error happened during setup. In this |
// case we simply report a running time of 0. |
@@ -199,8 +194,7 @@ class TestCase { |
_complete(PASS); |
} |
- void fail(String messageText, [String stack = '']) { |
- assert(stack != null); |
+ void fail(String messageText, [stack]) { |
if (result != null) { |
String newMessage = (result == PASS) |
? 'Test failed after initially passing: $messageText' |
@@ -212,8 +206,7 @@ class TestCase { |
} |
} |
- void error(String messageText, [String stack = '']) { |
- assert(stack != null); |
+ void error(String messageText, [stack]) { |
_complete(ERROR, messageText, stack); |
} |