Test cleanup, use latest pkg/test where possible
diff --git a/pubspec.yaml b/pubspec.yaml
index 1796530..324fae3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -15,4 +15,4 @@
 dev_dependencies:
   http: '>=0.9.2 <0.12.0'
   scheduled_test: '^0.12.0'
-  test: '^0.12.0'
+  test: '^0.12.7'
diff --git a/test/add_chunked_encoding_test.dart b/test/add_chunked_encoding_test.dart
index 2d3b897..d854c8f 100644
--- a/test/add_chunked_encoding_test.dart
+++ b/test/add_chunked_encoding_test.dart
@@ -7,8 +7,6 @@
 import 'package:shelf/shelf.dart';
 import 'package:test/test.dart';
 
-import 'test_util.dart';
-
 void main() {
   test('adds chunked encoding with no transfer-encoding header', () async {
     var response = await _chunkResponse(
diff --git a/test/hijack_test.dart b/test/hijack_test.dart
index 6b6c233..69edeb0 100644
--- a/test/hijack_test.dart
+++ b/test/hijack_test.dart
@@ -18,8 +18,8 @@
   test('hijacking a hijackable request throws a HijackException and calls '
       'onHijack', () {
     var request = new Request('GET', LOCALHOST_URI,
-        onHijack: expectAsync((callback) {
-      var streamController = new StreamController();
+        onHijack: expectAsync1((void callback(a, b)) {
+      var streamController = new StreamController<List<int>>();
       streamController.add([1, 2, 3]);
       streamController.close();
 
@@ -29,7 +29,7 @@
       callback(streamController.stream, sinkController);
     }));
 
-    expect(() => request.hijack(expectAsync((channel) {
+    expect(() => request.hijack(expectAsync1((channel) {
       expect(channel.stream.first, completion(equals([1, 2, 3])));
       channel.sink.add([4, 5, 6]);
       channel.sink.close();
@@ -39,7 +39,7 @@
   test('hijacking a hijackable request twice throws a StateError', () {
     // Assert that the [onHijack] callback is only called once.
     var request = new Request('GET', LOCALHOST_URI,
-        onHijack: expectAsync((_) => null, count: 1));
+        onHijack: expectAsync1((_) => null, count: 1));
 
     expect(() => request.hijack((_) => null),
         throwsA(new isInstanceOf<HijackException>()));
@@ -57,8 +57,8 @@
     test('hijacking a hijackable request throws a HijackException and calls '
         'onHijack', () {
       var request = new Request('GET', LOCALHOST_URI,
-          onHijack: expectAsync((callback) {
-        var streamController = new StreamController();
+          onHijack: expectAsync1((callback(a, b)) {
+        var streamController = new StreamController<List<int>>();
         streamController.add([1, 2, 3]);
         streamController.close();
 
@@ -70,7 +70,7 @@
 
       var newRequest = request.change();
 
-      expect(() => newRequest.hijack(expectAsync((channel) {
+      expect(() => newRequest.hijack(expectAsync1((channel) {
         expect(channel.stream.first, completion(equals([1, 2, 3])));
         channel.sink.add([4, 5, 6]);
         channel.sink.close();
@@ -81,7 +81,7 @@
         'StateError', () {
       // Assert that the [onHijack] callback is only called once.
       var request = new Request('GET', LOCALHOST_URI,
-          onHijack: expectAsync((_) => null, count: 1));
+          onHijack: expectAsync1((_) => null, count: 1));
 
       var newRequest = request.change();
 
diff --git a/test/message_test.dart b/test/message_test.dart
index fee8849..efd5798 100644
--- a/test/message_test.dart
+++ b/test/message_test.dart
@@ -131,7 +131,6 @@
     });
 
     test("supports a List<int> body", () {
-      var controller = new StreamController();
       var request = _createMessage(body: HELLO_BYTES);
       expect(request.read().toList(),
           completion(equals([HELLO_BYTES])));
diff --git a/test/server_handler_test.dart b/test/server_handler_test.dart
index 9cf9063..e9fbdc8 100644
--- a/test/server_handler_test.dart
+++ b/test/server_handler_test.dart
@@ -39,7 +39,7 @@
 
   test("stops servicing requests after Server.close is called", () {
     var serverHandler = new ServerHandler(LOCALHOST_URI);
-    serverHandler.server.mount(expectAsync((_) {}, count: 0));
+    serverHandler.server.mount(expectAsync1((_) {}, count: 0));
     serverHandler.server.close();
 
     expect(makeSimpleRequest(serverHandler.handler), throwsStateError);
diff --git a/test/shelf_io_test.dart b/test/shelf_io_test.dart
index 3afcad6..7c13692 100644
--- a/test/shelf_io_test.dart
+++ b/test/shelf_io_test.dart
@@ -103,7 +103,7 @@
   });
 
   test('chunked requests are un-chunked', () {
-    _scheduleServer(expectAsync((request) {
+    _scheduleServer(expectAsync1((request) {
       expect(request.contentLength, isNull);
       expect(request.method, 'POST');
       expect(request.headers, isNot(contains(HttpHeaders.TRANSFER_ENCODING)));
@@ -209,7 +209,7 @@
     _scheduleServer((request) {
       expect(request.method, 'POST');
 
-      request.hijack(expectAsync((stream, sink) {
+      request.hijack(expectAsync2((stream, sink) {
         expect(stream.first, completion(equals("Hello".codeUnits)));
 
         sink.add(("HTTP/1.1 404 Not Found\r\n"
@@ -249,7 +249,7 @@
           server.close();
         });
       });
-    }, onError: expectAsync((error) {
+    }, onError: expectAsync1((error) {
       expect(error, equals('oh no'));
     }));
   });