假设我有一个与 firebase 身份验证系统一起使用的登录和注销功能。
一个单元将如何测试这种方法? firebase 应用程序实例被导入并在登录功能中使用。
如果需要,代码片段:
export function login(data) {
return dispatch => {
return firebaseAuth.signInWithEmailAndPassword(data.emailField, data.passField)
.then(user => {
dispatch({type: "SET_CURRENT_USER", payload: user})
user.getToken().then(token => setAuthToken(token))
localStorage.setItem("currentUser", JSON.stringify(user))
})
}
}
我怎么能嘲笑这样的事情呢?我是否应该仅出于测试该方法的目的而设置测试电子邮件和密码?
推荐的方式是什么?
Thanks!
通过玩笑,您可以像这样模拟该函数。
jest.mock('pathToFireBase', () => ({
signInWithEmailAndPassword(email,password){
if(password === 'correct') {
return Promise.resolve({name: 'someUser'})
} else {
return Promise.reject({error: 'someError'})
}
}
}))
这将取代signInWithEmailAndPassword
在你的firebaseAuth
模块具有一个函数,该函数返回已解决或拒绝的承诺,具体取决于您在测试中传递给该函数的密码。
请看一下docs http://facebook.github.io/jest/docs/en/asynchronous.html#promises关于如何处理测试中的承诺
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)