我正在为使用Firebase的Vue项目编写单元测试。测试使用的是vue-test-utils。
事情是我在尝试绕过身份验证时遇到了麻烦,并且在每次测试中我都发现自己正在做这样的事情。
...
const login = async () => {
return firebase.auth().signInWithEmailAndPassword(email, pass).then(
res => {
return res
},
err => {
return new Error(err)
})
}
...
describe('some component', () => {
it('test something', async () => {
try {
await login()
...
} catch (e) {
...
}
})
it('test something else', async () => {
try {
await login()
...
} catch (e) {
...
}
})
})
我的问题是。建议使用哪种方法来测试使用Firebase的Vue组件,以及如何避免每次测试都必须登录?
希望我能正确解释我的问题!
我最终做了这个,因为就我而言,一次就足够了。
...
beforeAll(() => {
return login()
})
describe('some component', ...
一种方法是在测试套件中使用beforeEach函数来进行身份验证/检查身份验证是否仍然有效,只需:
beforeEach(() => {
try {
await login()
...
} catch (e) {
...
}
})
但是,您是否直接在vue组件中执行此逻辑?理想情况下,您不想直接从vue组件进行此类调用。如果您将该逻辑从组件中移出并移到服务类中(或者更进一步,并使用vuex来管理状态等。),则可以将Firebase逻辑与组件逻辑分开进行测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句