anchor.diff:      expect(options.webUseSseForDebugBackend, false);
       expect(options.webUseSseForDebugProxy, false);
       expect(options.webUseSseForInjectedClient, false);
  +  }, overrides: <Type, Generator>{
  +    Cache: () => Cache.test(processManager: FakeProcessManager.any()),
  +    FileSystem: () => MemoryFileSystem.test(),
  +    ProcessManager: () => FakeProcessManager.any(),
     });
   }
   
  -class MockCache extends Mock implements Cache {}
  -
  -class MockDeviceManager extends Mock implements DeviceManager {}
  -class MockDevice extends Mock implements Device {
  -  MockDevice(this._targetPlatform);
  -
  -  final TargetPlatform _targetPlatform;
  -
  -  @override
  -  Future<TargetPlatform> get targetPlatform async => Future<TargetPlatform>.value(_targetPlatform);
  +class FakeDeviceManager extends Fake implements DeviceManager {
  +  List<Device> devices = <Device>[];
  +  List<Device> targetDevices = <Device>[];
  +
  +  @override
  +  String specifiedDeviceId;
  +
  +  @override
  +  bool hasSpecifiedAllDevices = false;
  +
  +  @override
  +  bool hasSpecifiedDeviceId = false;
  +
  +  @override
  +  Future<List<Device>> getDevices() async {
  +    return devices;
  +  }
  +
  +  @override
  +  Future<List<Device>> findTargetDevices(FlutterProject flutterProject, {Duration timeout}) async {
  +    return targetDevices;
  +  }
   }
  +
   
   class TestRunCommand extends RunCommand {
     @override
  
positive.code: import 'package:flutter_tools/src/build_info.dart';
  import 'package:flutter_tools/src/cache.dart';
  import 'package:flutter_tools/src/commands/run.dart';
  import 'package:flutter_tools/src/device.dart';
  import 'package:flutter_tools/src/globals.dart' as globals;
  import 'package:flutter_tools/src/project.dart';
  
negative.code:     group('run app', () {
        MemoryFileSystem fs;
        Artifacts artifacts;
        TestUsage usage;
  
        setUpAll(() {
          Cache.disableLocking();
        });
  
        setUp(() {
          artifacts = Artifacts.test();
          usage = TestUsage();
          fs = MemoryFileSystem.test();
  
          fs.currentDirectory.childFile('pubspec.yaml')
            .writeAsStringSync('name: flutter_app');
          fs.currentDirectory.childFile('.packages')
            .writeAsStringSync('# Generated by pub on 2019-11-25 12:38:01.801784.');
          final Directory libDir = fs.currentDirectory.childDirectory('lib');
          libDir.createSync();
          final File mainFile = libDir.childFile('main.dart');
          mainFile.writeAsStringSync('void main() {}');
        });
  
        testUsingContext('exits with a user message when no supported devices attached', () async {
          final RunCommand command = RunCommand();
          mockDeviceManager
            ..devices = <Device>[]
            ..targetDevices = <Device>[];
  
          await expectLater(
            () => createTestCommandRunner(command).run(<String>[
  