| OLD | NEW |
| 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/test.dart'; | 7 import 'package:test/test.dart'; |
| 8 | 8 |
| 9 import '../../utils.dart'; | 9 import '../../utils.dart'; |
| 10 | 10 |
| 11 void main() { | 11 void main() { |
| 12 group("synchronous", () { | 12 group("synchronous", () { |
| 13 group("[throws]", () { | 13 group("[throws]", () { |
| 14 test("with a function that throws an error", () { | 14 test("with a function that throws an error", () { |
| 15 expect(() => throw 'oh no', throws); | 15 expect(() => throw 'oh no', throws); |
| 16 }); | 16 }); |
| 17 | 17 |
| 18 test("with a function that doesn't throw", () async { | 18 test("with a function that doesn't throw", () async { |
| 19 var closure = () {}; |
| 19 var liveTest = await runTestBody(() { | 20 var liveTest = await runTestBody(() { |
| 20 expect(() {}, throws); | 21 expect(closure, throws); |
| 21 }); | 22 }); |
| 22 | 23 |
| 23 expectTestFailed(liveTest, | 24 expectTestFailed(liveTest, allOf([ |
| 24 "Expected: throws\n" | 25 startsWith( |
| 25 " Actual: <$closureString>\n" | 26 "Expected: throws\n" |
| 26 " Which: did not throw\n"); | 27 " Actual: <"), |
| 28 endsWith(">\n" |
| 29 " Which: did not throw\n") |
| 30 ])); |
| 27 }); | 31 }); |
| 28 | 32 |
| 29 test("with a non-function", () async { | 33 test("with a non-function", () async { |
| 30 var liveTest = await runTestBody(() { | 34 var liveTest = await runTestBody(() { |
| 31 expect(10, throws); | 35 expect(10, throws); |
| 32 }); | 36 }); |
| 33 | 37 |
| 34 expectTestFailed(liveTest, | 38 expectTestFailed(liveTest, |
| 35 "Expected: throws\n" | 39 "Expected: throws\n" |
| 36 " Actual: <10>\n" | 40 " Actual: <10>\n" |
| 37 " Which: is not a Function or Future\n"); | 41 " Which: is not a Function or Future\n"); |
| 38 }); | 42 }); |
| 39 }); | 43 }); |
| 40 | 44 |
| 41 group("[throwsA]", () { | 45 group("[throwsA]", () { |
| 42 test("with a function that throws an identical error", () { | 46 test("with a function that throws an identical error", () { |
| 43 expect(() => throw 'oh no', throwsA('oh no')); | 47 expect(() => throw 'oh no', throwsA('oh no')); |
| 44 }); | 48 }); |
| 45 | 49 |
| 46 test("with a function that throws a matching error", () { | 50 test("with a function that throws a matching error", () { |
| 47 expect(() => throw new FormatException("bad"), | 51 expect(() => throw new FormatException("bad"), |
| 48 throwsA(isFormatException)); | 52 throwsA(isFormatException)); |
| 49 }); | 53 }); |
| 50 | 54 |
| 51 test("with a function that doesn't throw", () async { | 55 test("with a function that doesn't throw", () async { |
| 56 var closure = () {}; |
| 52 var liveTest = await runTestBody(() { | 57 var liveTest = await runTestBody(() { |
| 53 expect(() {}, throwsA('oh no')); | 58 expect(closure, throwsA('oh no')); |
| 54 }); | 59 }); |
| 55 | 60 |
| 56 expectTestFailed(liveTest, | 61 expectTestFailed(liveTest, allOf([ |
| 57 "Expected: throws 'oh no'\n" | 62 startsWith( |
| 58 " Actual: <$closureString>\n" | 63 "Expected: throws 'oh no'\n" |
| 59 " Which: did not throw\n"); | 64 " Actual: <"), |
| 65 endsWith(">\n" |
| 66 " Which: did not throw\n") |
| 67 ])); |
| 60 }); | 68 }); |
| 61 | 69 |
| 62 test("with a non-function", () async { | 70 test("with a non-function", () async { |
| 63 var liveTest = await runTestBody(() { | 71 var liveTest = await runTestBody(() { |
| 64 expect(10, throwsA('oh no')); | 72 expect(10, throwsA('oh no')); |
| 65 }); | 73 }); |
| 66 | 74 |
| 67 expectTestFailed(liveTest, | 75 expectTestFailed(liveTest, |
| 68 "Expected: throws 'oh no'\n" | 76 "Expected: throws 'oh no'\n" |
| 69 " Actual: <10>\n" | 77 " Actual: <10>\n" |
| 70 " Which: is not a Function or Future\n"); | 78 " Which: is not a Function or Future\n"); |
| 71 }); | 79 }); |
| 72 | 80 |
| 73 test("with a function that throws the wrong error", () async { | 81 test("with a function that throws the wrong error", () async { |
| 74 var liveTest = await runTestBody(() { | 82 var liveTest = await runTestBody(() { |
| 75 expect(() => throw 'aw dang', throwsA('oh no')); | 83 expect(() => throw 'aw dang', throwsA('oh no')); |
| 76 }); | 84 }); |
| 77 | 85 |
| 78 expectTestFailed(liveTest, | 86 expectTestFailed(liveTest, allOf([ |
| 79 "Expected: throws 'oh no'\n" | 87 startsWith( |
| 80 " Actual: <$closureString>\n" | 88 "Expected: throws 'oh no'\n" |
| 81 " Which: threw 'aw dang'\n"); | 89 " Actual: <"), |
| 90 endsWith(">\n" |
| 91 " Which: threw 'aw dang'\n") |
| 92 ])); |
| 82 }); | 93 }); |
| 83 }); | 94 }); |
| 84 }); | 95 }); |
| 85 | 96 |
| 86 group("asynchronous", () { | 97 group("asynchronous", () { |
| 87 group("[throws]", () { | 98 group("[throws]", () { |
| 88 test("with a Future that throws an error", () { | 99 test("with a Future that throws an error", () { |
| 89 expect(new Future.error('oh no'), throws); | 100 expect(new Future.error('oh no'), throws); |
| 90 }); | 101 }); |
| 91 | 102 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 135 |
| 125 expectTestFailed(liveTest, | 136 expectTestFailed(liveTest, |
| 126 "Expected future to fail, but succeeded with 'null'."); | 137 "Expected future to fail, but succeeded with 'null'."); |
| 127 }); | 138 }); |
| 128 | 139 |
| 129 test("with a Future that throws the wrong error", () async { | 140 test("with a Future that throws the wrong error", () async { |
| 130 var liveTest = await runTestBody(() { | 141 var liveTest = await runTestBody(() { |
| 131 expect(new Future.error('aw dang'), throwsA('oh no')); | 142 expect(new Future.error('aw dang'), throwsA('oh no')); |
| 132 }); | 143 }); |
| 133 | 144 |
| 134 expectTestFailed(liveTest, startsWith( | 145 expectTestFailed(liveTest, allOf([ |
| 135 "Expected: throws 'oh no'\n" | 146 startsWith( |
| 136 " Actual: <$closureString>\n" | 147 "Expected: throws 'oh no'\n" |
| 137 " Which: threw 'aw dang'\n")); | 148 " Actual: <"), |
| 149 contains(">\n" |
| 150 " Which: threw 'aw dang'\n") |
| 151 ])); |
| 138 }); | 152 }); |
| 139 | 153 |
| 140 test("won't let the test end until the Future completes", () { | 154 test("won't let the test end until the Future completes", () { |
| 141 return expectTestBlocks(() { | 155 return expectTestBlocks(() { |
| 142 var completer = new Completer(); | 156 var completer = new Completer(); |
| 143 expect(completer.future, throwsA('oh no')); | 157 expect(completer.future, throwsA('oh no')); |
| 144 return completer; | 158 return completer; |
| 145 }, (completer) => completer.completeError('oh no')); | 159 }, (completer) => completer.completeError('oh no')); |
| 146 }); | 160 }); |
| 147 }); | 161 }); |
| 148 }); | 162 }); |
| 149 } | 163 } |
| OLD | NEW |