我正在尝试测试下面的函数:
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);
发布于 2020-05-04 23:27:02
我必须将jest.spyOn用于firebase函数,然后验证下一步。答案如下:
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();
});https://stackoverflow.com/questions/61592825
复制相似问题