首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase Emulator可以用于React前端的集成测试吗?

Firebase Emulator可以用于React前端的集成测试吗?
EN

Stack Overflow用户
提问于 2021-01-13 04:56:24
回答 1查看 126关注 0票数 2

我有一个简单的React前端应用程序,它使用Firebase进行身份验证和Firestore (如果额外的上下文有用,则使用https://jlowen-netflix.netlify.app/)。我提供Firebase作为顶层应用程序的上下文,并侦听Auth中的更改以将用户重定向到已登录的内容。

我想测试从匿名到注册再到登录的端到端用户工作流。我已经安装了Firebase CLI和Firebase模拟器。我可以通过访问localhost上的Emulator UI来验证仿真器是否正确运行。当我为Create-React-App启动dev服务器(npm start)时,我还可以验证应用程序是否与模拟器挂钩。我在Emulator UI中创建了一个测试用户,并且能够按预期登录。

当我尝试让它在Jest中呈现时,我的auth侦听器定制钩子会在firebase初始化之前尝试访问firebase上下文上的auth()方法。

代码语言:javascript
复制
 TypeError: Cannot read property 'auth' of undefined

       9 |   // As recommended by Firebase - need to set up subscription
      10 |   useEffect(() => {
    > 11 |     const listener = firebase.auth().onAuthStateChanged((authUser) => {
         |                               ^
      12 |       console.log(`Firebase detected auth change: ${authUser}`)
      13 |       if (authUser) {
      14 |         localStorage.setItem("authUser", JSON.stringify(authUser))

      at src/hooks/use-auth-listener.js:11:31

我似乎不能解决我在Jest中遇到的某种异步问题,但在已部署的应用程序中不会发生。

我是React和Jest的新手,所以如果我能提供更多的信息,请让我知道!

EN

回答 1

Stack Overflow用户

发布于 2021-02-23 15:45:35

不幸的是,您的错误似乎与您的主要问题无关。您显示的错误说明您忘记了从某个地方对firebase执行importrequire操作。阅读firebase package docs并在文件的顶部添加类似以下内容:

代码语言:javascript
复制
var firebase = require('firebase');

我也有兴趣将firebase应用程序连接到本地模拟器,所以如果我想出了什么,我会编辑这个答案。同时..很抱歉给你带来了错误的希望。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65691925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档