Mol*_*árk 2 javascript unit-testing mocking mocha.js jestjs
假设我有一个与 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))
})
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能嘲笑这样的事情?我是否应该仅仅为了测试方法而设置测试电子邮件和密码?什么是推荐的方式?
谢谢!
开玩笑,你可以像这样模拟这个函数。
jest.mock('pathToFireBase', () => ({
signInWithEmailAndPassword(email,password){
if(password === 'correct') {
return Promise.resolve({name: 'someUser'})
} else {
return Promise.reject({error: 'someError'})
}
}
}))
Run Code Online (Sandbox Code Playgroud)
这将取代signInWithEmailAndPassword你在firebaseAuth与一个功能模块,要么返回取决于你传递给函数在测试中的密码解决或拒绝承诺。
请查看有关如何在测试中处理承诺的文档
| 归档时间: |
|
| 查看次数: |
1108 次 |
| 最近记录: |