搜尋套件、儲存庫與 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 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。