简体   繁体   中英

How to test "signInWithEmailAndPassword" from firebase_auth

I'm trying to write some unit test in my Flutter app. I'm using firebase and i write this function (that i want to test) :

import 'dart:core';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_database/firebase_database.dart';

class FirebaseUtils {
  static final FirebaseAuth _auth = FirebaseAuth.instance;
  static Exception _exception;

  static Future<bool> signIn(String email, String password) async {
    FirebaseUser user;
    try{
      user = await _auth.signInWithEmailAndPassword(email: email, password: password);
    } catch (ex){
      print(ex);
      _exception = ex;
      user = null;
    }
    return user!=null;
  }
}

my test :

import "package:test/test.dart";
import 'package:toolpad/utils/firebase/firebase_utils.dart';
import 'dart:async';

void main() {
 test("Sign In user from firebase (working)", () async {
    bool result = await FirebaseUtils.signIn("test@gmail.com", "lollollol");
    expect(result, equals(true));
  });
}

When i launch the test that throw an exception :

MissingPluginException(No implementation found for method signInWithEmailAndPassword on channel plugins.flutter.io/firebase_auth)
ERROR: Expected: <true>
  Actual: <false>

I have no idea how fix it, anyone have an idea ?

After lot of search it seems that it is not possible without specify an Firebase.initialize before.

So if u want test some functions linked to Firebase, u should use testWidget . That's going to test your app not juste function)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM