我正在为使用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', ...
答案 0 :(得分:1)
一种方法是使用测试套件中的beforeEach函数来进行身份验证/检查身份验证是否仍然有效,只需:
beforeEach(() => {
try {
await login()
...
} catch (e) {
...
}
})
但是,您是直接在vue组件中执行此逻辑吗?理想情况下,您不想直接从vue组件进行此类调用。如果您将该逻辑从组件中移出并移到服务类中(或者更进一步,并使用vuex管理状态等。),则可以将Firebase逻辑与组件逻辑分开进行测试。