如何在 Flutter 集成测试中模拟/绕过外部依赖项和工作流程?

May*_*ate 5 dart flutter flutter-test

我正在编写一个 Flutter 应用程序,它仅具有基于firebase_authgoogle_sign_in的 Google 登录。我无法找到如何模拟 Flutter 中的依赖项或如何单击 Google 身份验证对话框或绕过整个身份验证工作流程的标准工作示例。

我正在用于flutter_driver 编写此处提到的集成测试。

谷歌_登录_

app_test.dart

import 'package:flutter_driver/driver_extension.dart';
import 'package:pruoo_app/main.dart' as app;

void main() {
  enableFlutterDriverExtension();
  app.main();
}
Run Code Online (Sandbox Code Playgroud)

登录.dart

//...imports

class LoginView extends StatefulWidget {
  @override
  _LoginViewState createState() => _LoginViewState();
}

class _LoginViewState extends State<LoginView> {
  StreamSubscription<AuthenticationState> x;

  void getStream(AuthenticationState state, BuildContext context) async {
    if (state.toString() == 'AuthenticationAuthenticated') {
      print("Navigate to Main Page");
      );
  }
}

  Widget build(BuildContext context) {
    final AuthenticationBloc authenticationBloc =
        BlocProvider.of<AuthenticationBloc>(context);

    x = authenticationBloc.state.listen((state) {
      getStream(state, context);
    });

    return Scaffold(
        body: Center(
            child: GoogleSignInButton(
          onPressed: () {
            authenticationBloc.dispatch(LoggedIn());
          },
        )));
  }
}

Run Code Online (Sandbox Code Playgroud)