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

Unified Diff: tests/lib/unittest/matchers_test.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 side-by-side diff with in-line comments
Download patch
« lib/unittest/unittest.dart ('K') | « tests/json/json_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/lib/unittest/matchers_test.dart
===================================================================
--- tests/lib/unittest/matchers_test.dart (revision 8913)
+++ tests/lib/unittest/matchers_test.dart (working copy)
@@ -62,7 +62,7 @@
var a = new Map();
var b = new Map();
shouldPass(a, equals(a));
- shouldFail(a, equals(b), "Expected: <{}> but: was <{}>");
+ shouldPass(a, equals(b));
});
test('anything', () {
@@ -79,6 +79,94 @@
shouldPass(doesThrow, throws);
});
+ test('throwsA', () {
+ shouldPass(doesThrow, throwsA(equals('X')));
+ shouldFail(doesThrow, throwsA(equals('Y')),
+ "Expected: throws an exception which matches 'Y' "
+ "but: no exception or exception does not match 'Y'");
+ });
+
+ test('throwsBadNumberFormatException', () {
+ shouldPass(() { throw new BadNumberFormatException(''); },
+ throwsBadNumberFormatException);
+ shouldFail(() { throw new Exception(); },
+ throwsBadNumberFormatException,
+ "Expected: throws an exception which matches BadNumberFormatException "
+ "but: no exception or exception does not match "
+ "BadNumberFormatException");
+ });
+
+ test('throwsIllegalArgumentException', () {
+ shouldPass(() { throw new IllegalArgumentException(''); },
+ throwsIllegalArgumentException);
+ shouldFail(() { throw new Exception(); },
+ throwsIllegalArgumentException,
+ "Expected: throws an exception which matches IllegalArgumentException "
+ "but: no exception or exception does not match "
+ "IllegalArgumentException");
+ });
+
+ test('throwsIllegalJSRegExpException', () {
+ shouldPass(() { throw new IllegalJSRegExpException('',''); },
+ throwsIllegalJSRegExpException);
+ shouldFail(() { throw new Exception(); },
+ throwsIllegalJSRegExpException,
+ "Expected: throws an exception which matches IllegalJSRegExpException "
+ "but: no exception or exception does not match "
+ "IllegalJSRegExpException");
+ });
+
+ test('throwsIndexOutOfRangeException', () {
+ shouldPass(() { throw new IndexOutOfRangeException(0); },
+ throwsIndexOutOfRangeException);
+ shouldFail(() { throw new Exception(); },
+ throwsIndexOutOfRangeException,
+ "Expected: throws an exception which matches IndexOutOfRangeException "
+ "but: no exception or exception does not match "
+ "IndexOutOfRangeException");
+ });
+
+ test('throwsNoSuchMethodException', () {
+ shouldPass(() { throw new NoSuchMethodException(null, '', null); },
+ throwsNoSuchMethodException);
+ shouldFail(() { throw new Exception(); },
+ throwsNoSuchMethodException,
+ "Expected: throws an exception which matches NoSuchMethodException "
+ "but: no exception or exception does not match "
+ "NoSuchMethodException");
+ });
+
+ test('throwsNotImplementedException', () {
+ shouldPass(() { throw new NotImplementedException(''); },
+ throwsNotImplementedException);
+ shouldFail(() { throw new Exception(); },
+ throwsNotImplementedException,
+ "Expected: throws an exception which matches NotImplementedException "
+ "but: no exception or exception does not match "
+ "NotImplementedException");
+ });
+
+ test('throwsNullPointerException', () {
+ shouldPass(() { throw new NullPointerException(''); },
+ throwsNullPointerException);
+ shouldFail(() { throw new Exception(); },
+ throwsNullPointerException,
+ "Expected: throws an exception which matches NullPointerException "
+ "but: no exception or exception does not match "
+ "NullPointerException");
+ });
+
+ test('throwsUnsupportedOperationException', () {
+ shouldPass(() { throw new UnsupportedOperationException(''); },
+ throwsUnsupportedOperationException);
+ shouldFail(() { throw new Exception(); },
+ throwsUnsupportedOperationException,
+ "Expected: throws an exception which matches "
+ "UnsupportedOperationException "
+ "but: no exception or exception does not match "
+ "UnsupportedOperationException");
+ });
+
test('returnsNormally', () {
shouldPass(doesNotThrow, returnsNormally);
shouldFail(doesThrow, returnsNormally,
@@ -225,7 +313,6 @@
});
});
-
group('String Matchers', () {
test('isEmpty', () {
@@ -315,6 +402,11 @@
shouldFail(d, contains(0), "Expected: contains <0> but: was <[1, 2]>");
});
+ test('isIn', () {
+ var d = [1, 2];
+ shouldPass(1, isIn(d));
+ shouldFail(0, isIn(d), "Expected: is in <[1, 2]> but: was <0>");
+ });
test('everyElement', () {
var d = [1, 2];
@@ -333,11 +425,12 @@
});
test('orderedEquals', () {
+ shouldPass([null], orderedEquals([null]));
var d = [1, 2];
shouldPass(d, orderedEquals([1, 2]));
shouldFail(d, orderedEquals([2, 1]),
"Expected: equals <[2, 1]> ordered "
- "but: mismatch at position 0");
+ "but: was <1> mismatch at position 0");
});
test('unorderedEquals', () {
@@ -351,7 +444,7 @@
"but: has too few elements (2 < 3)");
shouldFail(d, unorderedEquals([3, 1]),
"Expected: equals <[3, 1]> unordered "
- "but: has no match for element 3 at position 0");
+ "but: has no match for element <3> at position 0");
});
});
@@ -393,7 +486,7 @@
"but: contains key 'foo' but with value was 'bar'");
shouldFail(a, containsPair('fo', 'bar'),
"Expected: contains pair 'fo' => 'bar' "
- "but: <{foo: bar}>' doesn't contain key ''fo'");
+ "but: <{foo: bar}> doesn't contain key 'fo'");
});
test('hasLength', () {
@@ -422,5 +515,13 @@
"but: a value greater than <0> was <-1>");
});
});
+
+ group('Predicate Matchers', () {
+ test('isInstanceOf', () {
+ shouldFail(0, predicate((x) => x is String, "an instance of String"),
+ "Expected: an instance of String but: was <0>");
+ shouldPass('cow', predicate((x) => x is String, "an instance of String"));
+ });
+ });
}
« lib/unittest/unittest.dart ('K') | « tests/json/json_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698