firebase_auth_mocks
Fakes für Firebase Auth. Verwenden Sie dieses Paket zusammen mit `google_sign_in_mocks`, um Einheitstests zu schreiben, die Firebase Authentication betreffen.
atn832/firebase_auth_mocks open-source repository details.
{"sdk":"flutter"}^6.0.0^4.0.0^1.16.0^2.0.0^3.2.0^4.1.0^9.0.0^0.8.2{"sdk":"flutter"}^1.11.0^1.0.0^2.0.1Englischer Projektschnappschuss. Aktuelle Inhalte auf GitHub.
pub package Unit Tests Buy Me A Coffee
Mocks for Firebase Auth. Use this package with google_sign_in_mocks to write unit tests involving Firebase Authentication.
A simple usage example. Add firebase_auth_mocks and google_sign_in_mocks to dev dependencies.
import 'package:firebase_auth_mocks/firebase_auth_mocks.dart';
import 'package:google_sign_in_mocks/google_sign_in_mocks.dart';
main() {
// Mock sign in with Google.
final googleSignIn = MockGoogleSignIn();
final signinAccount = await googleSignIn.signIn();
final googleAuth = await signinAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
// Sign in.
final user = MockUser(
isAnonymous: false,
uid: 'someuid',
email: 'bob@somedomain.com',
displayName: 'Bob',
);
final auth = MockFirebaseAuth(mockUser: user);
final result = await auth.signInWithCredential(credential);
final user = await result.user;
print(user.displayName);
}
MockFirebaseAuth supports:
MockFirebaseAuth(signedIn: true/false).authStateChanges and userChanges.signInWithCredential, signInWithEmailAndPassword, signInWithCustomToken,
signInAnonymously, createUserWithEmailAndPassword, signInWithPopup and signInWithProvider signs in.sendSignInLinkToEmail, confirmPasswordReset and verifyPasswordResetCode.verifyPhoneNumber resolves codeSent.signOutsendPasswordResetEmailcurrentUserwhenCalling(...).on(...).thenThrow(...). See usage details below. Currently these methods are supported: signInWithCredential, signInWithPopup, signInWithProvider, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signInAnonymously, signOut, sendPasswordResetEmail, sendSignInLinkToEmail, confirmPasswordReset, verifyPasswordResetCode. If you need another method supported, feel free to file a ticket, or better propose a PR.authForFakeFirestore. See the docs at fake_cloud_firestore for usage.authStateChanges, userChanges, idTokenChanges stream listenersUserCredential contains the provided User with the information of your choice.User supports:
updateDisplayNamereauthenticateWithCredentialupdatePassworddeletesendEmailVerificationgetIdToken and getIdTokenResultreauthenticateWithCredential, updatePassword, delete, sendEmailVerification, verifyPhoneNumber, linkWithCredential, linkWithProvider, unlink, User.reload, User.verifyBeforeUpdateEmail.whenCalling(Invocation.method(#signInWithCredential, null))
.on(auth)
.thenThrow(FirebaseAuthException(code: 'bla'));
expect(
() => auth.signInWithCredential(FakeAuthCredential()),
throwsA(isA<FirebaseAuthException>()),
);
final auth = MockFirebaseAuth();
whenCalling(Invocation.method(#verifyPhoneNumber, '12-345-6789'))
.on(auth)
.thenThrow(FirebaseAuthException(code: 'invalid-action-code'));
expect(() => auth.verifyPhoneNumber('12-345-6789'),
throwsA(isA<FirebaseAuthException>()));
expect(() => auth.verifyPhoneNumber('00-222-4444'),
returnsNormally);
Supports all of the matchers from the Dart matchers library.
final auth = MockFirebaseAuth();
whenCalling(Invocation.method(
#confirmPasswordReset, null, {#code: contains('code')}))
.on(auth)
.thenThrow(FirebaseAuthException(code: 'invalid-action-code'));
expect(
() => auth.confirmPasswordReset(
code: 'code',
newPassword: 'password',
),
throwsA(isA<FirebaseAuthException>()),
);
expect(
() => auth.confirmPasswordReset(
code: '1234',
newPassword: 'password',
),
returnsNormally,
);
You can match some or all named parameters. If you omit a named parameter, the library matches it against anything.
In this example, it will throw an exception if the code contains the String 'code', no matter the value of newPassword.
whenCalling(Invocation.method(
#confirmPasswordReset, null, {#code: contains('code')}))
.on(auth)
.thenThrow(FirebaseAuthException(code: 'invalid-action-code'));
expect(
() async => await auth.confirmPasswordReset(
code: 'code',
newPassword: 'password',
),
throwsA(isA<FirebaseAuthException>()),
);
expect(
() => auth.confirmPasswordReset(
code: '10293',
newPassword: 'password',
),
returnsNormally);
| firebase_auth | firebase_auth_mocks |
|---|---|
| 6.0.0 | 0.15.0 |
| 5.0.0 | 0.14.0 |
| 4.0.0 | 0.9.0 |
| 3.5.0 | 0.8.7 |
Please file feature requests and bugs at the issue tracker.