Fake Firebase Performance for use during Flutter unit & widget tests

Fake Firebase Performance

Fakes to write unit tests for apps using Firebase Performance monitoring. Instantiate a FakeFirebasePerformance, then pass it around your project to replace FirebasePerformance.instance. This fake acts like FirebasePerformance except it will load mocked data instead.

Usage

A simple usage example

import 'package:fake_firebase_performance/fake_firebase_performance.dart';

void main() async {
  final perf = FakeFirebasePerformance();

  perf.isPerformanceCollectionEnabled(); // will return false

  perf.newTrace('test'); // will do nothing
  perf.newHttpMetric("https://example.com/", HttpMethod.Get); // will do nothing
}

This perf object needs to replace the real FirebasePerformance.instance during testing. You can do this for example with Riverpod or by doing something like this:

await tester.pumpWidget(
  MaterialApp(
    title: 'FirebasePerformance Example',
    home: MyApp(overrideFirebasePerformance: perf),
  ),
);

Missing functionality

  • perf.app will throw
  • perf.pluginConstants is empty
  • perf.newTrace() does nothing
  • perf.newHttpMetric() does nothing

Compatibility table

firebase_performance fake_firebase_performance
>=0.8.0 1.0.0

Features and bugs

Please file feature requests and bugs at the issue tracker.

GitHub

View Github