搜索插件、代码仓与 APP 分类

插件详情v0.4.2

google_sign_in_mocks

Google 登录的模拟。结合 `firebase_auth_mocks` 使用此包,编写涉及 Firebase 认证的单元测试。

AndroidiOSWebmacOS
近 30 天下载
1.7万
喜欢数
35
Pub 分数
150

安装插件

flutter pub add google_sign_in_mocks

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个测试包,提供 Google 登录的模拟实现,使开发者能够在无需实际 Google 帐户的情况下模拟身份验证流程。它与 firebase_auth_mocks 无缝集成,非常适合为 Flutter 应用中的 Firebase 认证逻辑编写可靠的单元测试。这些模拟支持所有主要平台,包括 Android、iOS、Web 和 macOS,确保在不同环境中的测试行为一致。

适合场景

  • 使用 Google 登录进行 Firebase Auth 的单元测试
  • 在测试中模拟登录/登出流程
  • 测试 Google 登录后的应用行为
  • 验证由身份验证触发的状态更改
  • 确保跨平台测试的可靠性

主要特点

  • 带有可配置响应的模拟 GoogleSignIn 类
  • 与 firebase_auth_mocks 的集成
  • 支持所有主要平台
  • 测试环境的简易设置
  • 测试期间无外部依赖

适合对象

  • Flutter 开发人员编写单元测试
  • 使用 Firebase 认证的团队
  • 测试驱动开发工作流程
  • 跨平台应用测试
  • CI/CD 流水线需要稳定的测试运行

使用建议

  • 不适用于生产环境
  • 需要 firebase_auth_mocks 才能实现完整功能
  • 模拟行为必须在测试中显式定义
  • 仅限登录模拟,不包含完整的OAuth流程
  • 不处理真实的 Google 账户交互

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Mocks for google_sign_in. Use this package with firebase_auth_mocks to write unit tests involving Firebase Authentication.

pub package unit-tests Buy Me A Coffee

Usage

A simple usage example:

import 'package:google_sign_in_mocks/google_sign_in_mocks.dart';
import 'package:test/test.dart';

void main() {
  late MockGoogleSignIn googleSignIn;
  setUp(() {
    googleSignIn = MockGoogleSignIn();
  });

  test('should return idToken when authenticating', () async {
    final signInAccount = await googleSignIn.signIn();
    final signInAuthentication = await signInAccount!.authentication;
    expect(signInAuthentication, isNotNull);
    expect(googleSignIn.currentUser, isNotNull);
    expect(signInAuthentication.idToken, isNotNull);
  });

  test('should return null when google login is cancelled by the user',
      () async {
    googleSignIn.setIsCancelled(true);
    final signInAccount = await googleSignIn.signIn();
    expect(signInAccount, isNull);
  });
  test('testing google login twice, once cancelled, once not cancelled at the same test.', () async {
   googleSignIn.setIsCancelled(true);
    final signInAccount = await googleSignIn.signIn();
    expect(signInAccount, isNull);
    googleSignIn.setIsCancelled(false);
    final signInAccountSecondAttempt = await googleSignIn.signIn();
    expect(signInAccountSecondAttempt, isNotNull);
  });
}

Features and bugs

Please file feature requests and bugs at the issue tracker.

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目

暂无相关数据。