首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在saga中测试firebase函数?

如何在saga中测试firebase函数?
EN

Stack Overflow用户
提问于 2020-05-04 21:02:20
回答 1查看 89关注 0票数 0

我正在尝试测试下面的函数:

代码语言:javascript
复制
export function* signInWithEmail({ payload: { email, password } }) {
  try {
    const { user } = yield auth.signInWithEmailAndPassword(email, password);
    yield call(getSnapShotFromUserAuth, user);
  } catch (error) {
    yield put(signInFailure(error));
  }
}

我已经研究了redux-saga-test-plan和其他saga测试库,但似乎不知道如何测试firebase函数,如果它没有使用saga效果调用的话。

我需要一种方法来模拟firebase函数,同时能够测试这行代码是否被称为yield call(getSnapShotFromUserAuth, user);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-04 23:27:02

我必须将jest.spyOn用于firebase函数,然后验证下一步。答案如下:

代码语言:javascript
复制
it("should call getSnapShotFromUserAuth", () => {
    let userData = {
      user: {
        id: 1,
        name: "jon",
      },
    };

    let { user } = userData;

    jest
      .spyOn(auth, "signInWithEmailAndPassword")
      .mockImplementation(() => userData);

    let saga = testSaga(signInWithEmail, { payload });
    saga
      .next()
      .next({ user })
      .call(getSnapShotFromUserAuth, user)
      .next()
      .isDone();
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61592825

复制
相关文章

相似问题

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