diff --git a/test/core_matchers_test.dart b/test/core_matchers_test.dart
index 5b24d46..256d8ff 100644
--- a/test/core_matchers_test.dart
+++ b/test/core_matchers_test.dart
@@ -227,29 +227,4 @@
       shouldPass('cow', predicate((x) => x is String, "an instance of String"));
     });
   });
-
-  test("Feature Matcher", () {
-    var w = new Widget();
-    w.price = 10;
-    shouldPass(w, new HasPrice(10));
-    shouldPass(w, new HasPrice(greaterThan(0)));
-    shouldFail(
-        w,
-        new HasPrice(greaterThan(10)),
-        "Expected: Widget with a price that is a value greater than <10> "
-        "Actual: <Instance of 'Widget'> "
-        "Which: has price with value <10> which is not "
-        "a value greater than <10>");
-  });
-
-  test("Custom Matcher Exception", () {
-    shouldFail(
-        "a",
-        new BadCustomMatcher(),
-        allOf([
-          contains("Expected: feature {1: 'a'} "),
-          contains("Actual: 'a' "),
-          contains("Which: threw 'Exception: bang' "),
-        ]));
-  });
 }
diff --git a/test/custom_matcher_test.dart b/test/custom_matcher_test.dart
new file mode 100644
index 0000000..3ff4813
--- /dev/null
+++ b/test/custom_matcher_test.dart
@@ -0,0 +1,45 @@
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:matcher/matcher.dart';
+import 'package:test/test.dart' show test;
+
+import 'test_utils.dart';
+
+class _BadCustomMatcher extends CustomMatcher {
+  _BadCustomMatcher() : super("feature", "description", {1: "a"});
+  featureValueOf(actual) => throw new Exception("bang");
+}
+
+class _HasPrice extends CustomMatcher {
+  _HasPrice(matcher) : super("Widget with a price that is", "price", matcher);
+  featureValueOf(actual) => actual.price;
+}
+
+void main() {
+  test("Feature Matcher", () {
+    var w = new Widget();
+    w.price = 10;
+    shouldPass(w, new _HasPrice(10));
+    shouldPass(w, new _HasPrice(greaterThan(0)));
+    shouldFail(
+        w,
+        new _HasPrice(greaterThan(10)),
+        "Expected: Widget with a price that is a value greater than <10> "
+        "Actual: <Instance of 'Widget'> "
+        "Which: has price with value <10> which is not "
+        "a value greater than <10>");
+  });
+
+  test("Custom Matcher Exception", () {
+    shouldFail(
+        "a",
+        new _BadCustomMatcher(),
+        allOf([
+          contains("Expected: feature {1: 'a'} "),
+          contains("Actual: 'a' "),
+          contains("Which: threw 'Exception: bang' "),
+        ]));
+  });
+}
diff --git a/test/test_utils.dart b/test/test_utils.dart
index a0dad48..574d257 100644
--- a/test/test_utils.dart
+++ b/test/test_utils.dart
@@ -36,11 +36,6 @@
   int price;
 }
 
-class HasPrice extends CustomMatcher {
-  HasPrice(matcher) : super("Widget with a price that is", "price", matcher);
-  featureValueOf(actual) => actual.price;
-}
-
 class SimpleIterable extends Iterable<int> {
   final int count;
 
