使用 Mockito 设置 Firebase 用户身份验证的单元测试

2024-01-04

我一直在尝试为我的 Firebase 用户身份验证类设置单元测试。我尝试像许多教程所示的那样进行操作,但由于 firebase 核心插件已更新,因此它们改变了您必须设置环境的方式。我无法弄清楚如何使用 Mocks 调用 Firebase.initializeApp() 方法。该插件提供的文档也没有透露任何解决方案。到目前为止有人解决了这个问题吗?

class MockFirebaseAuth extends Mock implements fireAuth.FirebaseAuth {}

class MockFirebaseUser extends Mock implements fireAuth.User {}

class MockAuthResult extends Mock implements fireAuth.UserCredential {}

void main() async {
  TestWidgetsFlutterBinding.ensureInitialized();
  MockFirebaseAuth _auth = MockFirebaseAuth();
  BehaviorSubject<MockFirebaseUser> _user = BehaviorSubject<MockFirebaseUser>();
  when(_auth.authStateChanges()).thenAnswer((_) {
    return _user;
  });
  User user = User.instance(auth: _auth);

  group('User Model Test', () {
    String email = '[email protected] /cdn-cgi/l/email-protection';
    String password = '123456';

    when(_auth.signInWithEmailAndPassword(email: email, password: password)).thenAnswer((_) async {
      _user.add(MockFirebaseUser());
      return MockAuthResult();
    });
    test('sign in with email and password', () async {
      bool signedIn = await user.signIn(email, password);
      expect(signedIn, true);
      expect(user.status, Status.Authenticated);
    });
    test('sign out', () async {});
  });
}

抛出错误:

[core/no-app] 未创建 Firebase 应用程序“[DEFAULT]” - 调用 Firebase.initializeApp()


你可以这样做:

 setUpAll(() async {
   
    await Firebase.initializeApp();

  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Mockito 设置 Firebase 用户身份验证的单元测试 的相关文章

随机推荐

  • 防止在移动 Safari (iPad / iPhone) 中长按/长按时出现默认上下文菜单

    对于网站 我想在用户 长按 屏幕时显示自定义上下文菜单 我创建了一个jQuery 长按 https github com pisi Longclick我的代码中的侦听器以显示自定义上下文菜单 显示上下文菜单 但也显示 iPad 的默认上下文
  • ABP.IO - Blazor WebAssembly - 租户特定登录

    我在我的项目中使用 ABP IO Blazor 模板 尝试构建一个简单的多租户门户 我遇到的问题是试图避免最终用户在登录屏幕上选择特定租户 使用此页面作为我的参考 https docs abp io en abp latest 多租户 ht
  • SVN 使用通配符删除?

    我正在将 VSS 存储库迁移到 SVN 并在第一次签入时无意中包含了所有 vti cnf scc 文件 我想从 SVN 中删除这些 当然不是永久的 只是在头脑中 相关应用程序非常大 逐个文件夹查找和删除这些文件将花费很长时间 建议 一定有一
  • 将 JSON 字符串中的数据叠加到现有对象实例

    我想反序列化一个 JSON 字符串 该字符串不一定包含每个成员的数据 例如 public class MyStructure public string Field1 public string Field2 假设我有一个实例 Field1
  • 部分屏幕截图和图像质量损失

    我正在打印相机胶卷 电子邮件 短信 FB Twitter 等的部分屏幕截图 选择了部分屏幕 从顶部开始 100 像素 从底部开始 100 像素 我使用了以下代码 let top CGFloat 100 let bottom CGFloat
  • 使用 NSUserDefaults 存储 UISwitch 状态

    我正在努力坚持UISwitch在我的应用程序的设置视图中说明 基本上它是一个UITableView并包含一些开关来获取用户首选项 下面的代码解释了开关的构造方式 下面只给出了一种开关构造 其他的也以同样的方式构造 if cell nil c
  • 在 Xcode 4.3.1 中使用 libc++ 时如何获得合理的变量显示?

    我使用 Xcode 4 3 1 的 C 11 语言方言以及 libc 作为标准库 这种组合的语言支持令人惊叹 但调试却是一种折磨 Xcode 的 摘要格式 和 lldb 的摘要格式功能都不会以漂亮的打印方式显示任何标准类型 std stri
  • 除了以 /api 开头的路由之外,为所有路由运行快速中间件?

    我有一个 Express 中间件 可以像这样在服务器上渲染 React 放置在所有其他路由之后的末尾 app use function req res Router run routes req path function Handler
  • Android、NSD/DNS-SD:NsdManager 不可靠的发现和 IP 解析

    在过去的几周里 Android 的 NSD 实现让我抓狂 从用户的角度来看 会出现以下问题 设备以完全不确定的方式发现彼此 如果我启动我的NsdManager基于应用程序 如果只涉及两个设备 它或多或少可以工作 如果第三个设备加入 它很少会
  • AngularJS 多页面应用程序网站样板网站结构建议

    我正在寻找一些有关创建由 Laravel 后端服务的 AngularJs 多页面应用程序的指导 网上的所有 Web 应用程序教程都指向创建 SPA 而我刚刚开始使用 Angular 所以请对我放轻松 产品页面示例 http example
  • 在 python 和 swift 之间交换加密消息

    我需要一个 python 代码和一个 swift 代码交换加密消息 这是我尝试过的 Fernet 在审查了这些选项之后 我认为对称密钥算法效果很好 在 python 中 像往常一样 它是加密和解密简单 https cryptography
  • 将解决方案转换为 pdf 或 doc 文件

    这似乎是一个奇怪的问题 但我需要将我的代码转换为 pdf 这样我就可以将其提交 是的 遗憾的是学校系统要求将 CD 上的代码作为 pdf 格式 我能做的就是打开解决方案中的每个类并复制粘贴它 但是 作为一名程序员 我很懒 想知道 Visua
  • 在 QTCreator 中使用 MinGW 编译 c++ 和 cuda 代码

    我正在尝试编译简单的cuda程序 我从在 Windows 上的 Qt Creator 中编译 Cuda 代码 https stackoverflow com questions 12266264 compiling cuda code in
  • C++ 中的斐波那契数列

    include
  • 将一个表中的多个列连接到另一个表中的单个列

    我正在创建一个从两个表 Schedule 和 Reference 中提取数据的视图 Schedule 有 50 多列 它几乎完全非规范化 不是我的设计 其中大部分包含可以连接到参考表中的列的值 如何编写 SQL 语句以将 Schedules
  • 无法使用 C# 连接到启用 OnVif 的相机

    我是第一次使用 IPCam 并尝试连接到 OnVif 摄像机 我查看了各种论坛和堆栈溢出 并提出了以下代码 我知道该代码没有做任何有用的事情 但它现在只是一个概念证明 它找到我网络上的所有 4 个摄像头 然后我手动连接到其中一个摄像头以拉回
  • Java,如何找出哪个类或方法使用了大量内存?

    这是我的 Java 项目的一日内存曲线 如何找出哪个类或方法使用了大量内存 你需要一个可以做到的工具JVM 分配分析 https www google com search q jvm 20allocation 20profiling Ja
  • 获取 NEF 格式图像的拍摄日期

    我有一个函数可以获取 JPEG 格式图片的拍摄日期值 我遇到了 NEF Nikon raw 格式的问题 在 Windows 8 中 如果我将该列添加到 Windows 资源管理器详细信息视图 我可以看到 拍摄日期 值 执行以下命令时收到的错
  • 在实体框架中执行存储过程,返回List或DataSet

    如何修改以下方法以返回 List 或 DataSet 我想让它变得通用 这样它就可以从数据库返回多个结果集 public static DataTable ExecuteStoredProcedure ObjectContext db st
  • 使用 Mockito 设置 Firebase 用户身份验证的单元测试

    我一直在尝试为我的 Firebase 用户身份验证类设置单元测试 我尝试像许多教程所示的那样进行操作 但由于 firebase 核心插件已更新 因此它们改变了您必须设置环境的方式 我无法弄清楚如何使用 Mocks 调用 Firebase i