firebase - Flutter 中的单元测试 firebase 抛出异常“没有创建 Firebase App '[DEFAULT]' - call Firebase.initializeApp()”
问题描述
我需要对使用 firebase 的应用程序进行单元测试。我的单元测试总是说“未处理的异常:[core/no-app] 没有创建 Firebase App '[DEFAULT]' - 调用 Firebase.initializeApp()”。我完全理解为什么会出现这个问题。但我仍然想在没有真正启动 firebase 的情况下对我的方法进行单元测试。即使嘲笑火力基地的东西也无济于事。希望你能帮助我吗?我有什么误解?
例如,我重写了本教程中的代码:https ://www.youtube.com/watch?v=4d6hEaUVvuU
这是我的测试类:(YT 示例中的“Auth”类在我的代码中是“Authentification”)
import 'package:firebase_auth/firebase_auth.dart';
import 'package:hrw_textscanner/firebase/Authentification.dart';
import 'package:mockito/mockito.dart';
import 'package:test/test.dart';
class MockUser extends Mock implements User {}
final MockUser _mockUser = MockUser();
class MockFirebaseAuth extends Mock implements FirebaseAuth {
@override
Stream<User> authStateChanges() {
return Stream.fromIterable([
_mockUser,
]);
}
}
void main() {
final MockFirebaseAuth mockFirebaseAuth = new MockFirebaseAuth();
final Authentification authentification =
new Authentification(mockFirebaseAuth);
test("emit occurs", () async {
expectLater(authentification.authStateChanges, emitsInOrder([_mockUser])); //authStateChanges is the same as "user" in example
});
}
在 Youtube 的示例中它可以工作 - 我的代码仍然导致上述错误:(
解决方案
推荐阅读
- swift - Swift 4 中不确定代码块的类似 Try-catch 功能
- excel - Excel:根据动态范围计算滚动平均值
- java - 从基本父 pom 继承 Spring Boot 依赖项导致我的应用程序的 cf push 命令失败
- javascript - 如何在 Dynamics 365 的配置页面中的 Web 表单上显示记录?
- android - 从深层链接启动时,我可以使用代码退出我的 android 应用程序吗?
- python - 根据特定列对列进行排序 | 蟒蛇 | 熊猫
- python - 为什么在 Python 中选择模块级函数而不是 @staticmethod(根据 Google 样式指南)?
- sql - PostgreSQL 全文搜索在某些情况下不起作用(Django)
- html - 在 Bootstrap 中使用 HTML 元视口标签
- javascript - 语法错误意外令牌} nodejs