我目前正在掌握Vuex中的测试。我有以下操作:
import { fetchProfile } from '../api'
export const getProfile = ({ commit }) => {
return fetchProfile()
.then(async (profile) => {
await commit(types.SET_AUTHENTICATED, true)
await commit(types.SET_PROFILE, profile.user)
})
}
然后进行以下测试:
jest.mock('../../src/api')
describe('task actions', () => {
it('fetchProfile commits user profile returned by api', async () => {
const profile = { first_name: 'John', last_name: 'Doe' }
fetchProfile.mockResolvedValue(profile)
const commit = jest.fn()
await actions.getProfile({ commit })
expect(commit).toHaveBeenCalledWith(types.SET_AUTHENTICATED, true)
expect(commit).toHaveBeenCalledWith('SET_PROFILE', profile)
})
})
此操作失败
“ SET_PROFILE” 作为参数1,但它被称为 “ SET_AUTHENTICATED”。
如果我注释掉第二个期望,则测试通过。
但是,我如何测试两个提交都正确发生了? 任何帮助或指导将不胜感激
谢谢。
答案 0 :(得分:0)
我在每个期望的开头添加了一个等待,现在它可以正常工作了!