Bump mockito to 3.0.0-alpha+3 (#16306)

* Bump mockito to 3.0.0-alpha+3

* Type annotation
diff --git a/packages/flutter_tools/test/analytics_test.dart b/packages/flutter_tools/test/analytics_test.dart
index f9fb7b2..6b9872a 100644
--- a/packages/flutter_tools/test/analytics_test.dart
+++ b/packages/flutter_tools/test/analytics_test.dart
@@ -96,7 +96,7 @@
 
     testUsingContext('flutter commands send timing events', () async {
       mockTimes = <int>[1000, 2000];
-      when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenReturn(true);
+      when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenAnswer((_) async => true);
       final DoctorCommand command = new DoctorCommand();
       final CommandRunner<Null> runner = createTestCommandRunner(command);
       await runner.run(<String>['doctor']);
@@ -115,7 +115,7 @@
 
     testUsingContext('doctor fail sends warning', () async {
       mockTimes = <int>[1000, 2000];
-      when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenReturn(false);
+      when(mockDoctor.diagnose(androidLicenses: false, verbose: false)).thenAnswer((_) async => false);
       final DoctorCommand command = new DoctorCommand();
       final CommandRunner<Null> runner = createTestCommandRunner(command);
       await runner.run(<String>['doctor']);
diff --git a/packages/flutter_tools/test/base/context_test.dart b/packages/flutter_tools/test/base/context_test.dart
index a58abf7..ba7f8c2 100644
--- a/packages/flutter_tools/test/base/context_test.dart
+++ b/packages/flutter_tools/test/base/context_test.dart
@@ -174,7 +174,7 @@
       test('returns the value returned by body', () async {
         expect(await context.run<int>(body: () => 123), 123);
         expect(await context.run<String>(body: () => 'value'), 'value');
-        expect(await context.run<Future<int>>(body: () async => 456), 456);
+        expect(await context.run<int>(body: () async => 456), 456);
       });
 
       test('passes name to child context', () async {
diff --git a/packages/flutter_tools/test/commands/install_test.dart b/packages/flutter_tools/test/commands/install_test.dart
index 0ab0cc6..2a71342 100644
--- a/packages/flutter_tools/test/commands/install_test.dart
+++ b/packages/flutter_tools/test/commands/install_test.dart
@@ -17,8 +17,8 @@
       applyMocksToCommand(command);
 
       final MockAndroidDevice device = new MockAndroidDevice();
-      when(device.isAppInstalled(any)).thenReturn(false);
-      when(device.installApp(any)).thenReturn(true);
+      when(device.isAppInstalled(any)).thenAnswer((_) async => false);
+      when(device.installApp(any)).thenAnswer((_) async => true);
       testDeviceManager.addDevice(device);
 
       await createTestCommandRunner(command).run(<String>['install']);
@@ -29,8 +29,8 @@
       applyMocksToCommand(command);
 
       final MockIOSDevice device = new MockIOSDevice();
-      when(device.isAppInstalled(any)).thenReturn(false);
-      when(device.installApp(any)).thenReturn(true);
+      when(device.isAppInstalled(any)).thenAnswer((_) async => false);
+      when(device.installApp(any)).thenAnswer((_) async => true);
       testDeviceManager.addDevice(device);
 
       await createTestCommandRunner(command).run(<String>['install']);
diff --git a/packages/flutter_tools/test/compile_test.dart b/packages/flutter_tools/test/compile_test.dart
index c36edd8..f505789 100644
--- a/packages/flutter_tools/test/compile_test.dart
+++ b/packages/flutter_tools/test/compile_test.dart
@@ -35,7 +35,7 @@
       when(mockProcessManager.canRun(any)).thenReturn(true);
       when(mockProcessManager.start(any)).thenAnswer(
           (Invocation invocation) => new Future<Process>.value(mockFrontendServer));
-      when(mockFrontendServer.exitCode).thenReturn(0);
+      when(mockFrontendServer.exitCode).thenAnswer((_) async => 0);
     });
 
     testUsingContext('single dart successful compilation', () async {
@@ -77,7 +77,7 @@
     });
 
     testUsingContext('single dart abnormal compiler termination', () async {
-      when(mockFrontendServer.exitCode).thenReturn(255);
+      when(mockFrontendServer.exitCode).thenAnswer((_) async => 255);
 
       final BufferLogger logger = context[Logger];
 
diff --git a/packages/flutter_tools/test/ios/code_signing_test.dart b/packages/flutter_tools/test/ios/code_signing_test.dart
index fcd5522..fe38a0c 100644
--- a/packages/flutter_tools/test/ios/code_signing_test.dart
+++ b/packages/flutter_tools/test/ios/code_signing_test.dart
@@ -130,7 +130,7 @@
             ))
           ));
       when(mockProcess.stderr).thenAnswer((Invocation invocation) => mockStdErr);
-      when(mockProcess.exitCode).thenReturn(0);
+      when(mockProcess.exitCode).thenAnswer((_) async => 0);
 
       final Map<String, String> signingConfigs = await getCodeSigningIdentityDevelopmentTeam(iosApp: app);
 
@@ -185,7 +185,7 @@
             ))
           ));
       when(mockProcess.stderr).thenAnswer((Invocation invocation) => mockStdErr);
-      when(mockProcess.exitCode).thenReturn(0);
+      when(mockProcess.exitCode).thenAnswer((_) async => 0);
 
       final Map<String, String> signingConfigs = await getCodeSigningIdentityDevelopmentTeam(iosApp: app);
 
diff --git a/packages/flutter_tools/test/ios/ios_workflow_test.dart b/packages/flutter_tools/test/ios/ios_workflow_test.dart
index 395c7da..6ee3c24 100644
--- a/packages/flutter_tools/test/ios/ios_workflow_test.dart
+++ b/packages/flutter_tools/test/ios/ios_workflow_test.dart
@@ -253,9 +253,9 @@
           .thenReturn('Xcode 8.2.1\nBuild version 8C1002\n');
       when(xcode.isInstalledAndMeetsVersionCheck).thenReturn(true);
       when(xcode.eulaSigned).thenReturn(true);
-      when(cocoaPods.isCocoaPodsInstalledAndMeetsVersionCheck).thenReturn(false);
-      when(cocoaPods.hasCocoaPods).thenReturn(true);
-      when(cocoaPods.isCocoaPodsInitialized).thenReturn(false);
+      when(cocoaPods.isCocoaPodsInstalledAndMeetsVersionCheck).thenAnswer((_) async => false);
+      when(cocoaPods.hasCocoaPods).thenAnswer((_) async => true);
+      when(cocoaPods.isCocoaPodsInitialized).thenAnswer((_) async => false);
       when(xcode.isSimctlInstalled).thenReturn(true);
 
       final ValidationResult result = await new IOSWorkflowTestTarget().validate();
diff --git a/packages/flutter_tools/test/ios/simulators_test.dart b/packages/flutter_tools/test/ios/simulators_test.dart
index dd2b599..b6ee8ee 100644
--- a/packages/flutter_tools/test/ios/simulators_test.dart
+++ b/packages/flutter_tools/test/ios/simulators_test.dart
@@ -306,8 +306,7 @@
         when(mockProcess.exitCode)
             .thenAnswer((Invocation invocation) => new Future<int>.delayed(Duration.zero, () => 0));
         return new Future<Process>.value(mockProcess);
-      })
-          .thenThrow(new TestFailure('Should start one process only'));
+      });
 
       final IOSSimulator device = new IOSSimulator('123456', category: 'iOS 11.0');
       final DeviceLogReader logReader = device.getLogReader(
diff --git a/packages/flutter_tools/test/version_test.dart b/packages/flutter_tools/test/version_test.dart
index 8495328..e3f1ed8 100644
--- a/packages/flutter_tools/test/version_test.dart
+++ b/packages/flutter_tools/test/version_test.dart
@@ -396,7 +396,7 @@
     throw new StateError('Unexpected call to Cache.setStampFor(${invocation.positionalArguments}, ${invocation.namedArguments})');
   });
 
-  final Answering syncAnswer = (Invocation invocation) {
+  final Answering<ProcessResult> syncAnswer = (Invocation invocation) {
     bool argsAre(String a1, [String a2, String a3, String a4, String a5, String a6, String a7, String a8]) {
       const ListEquality<String> equality = const ListEquality<String>();
       final List<String> args = invocation.positionalArguments.single;