nuxtで作成しているアプリケーションでstoreのテストを書いています。テストライブラリはjestを使用しています。
actionのコード例は以下のとおりです
javascript
1 2export const actions = { 3 async login({ commit }, { id }) { 4 const user = await this.$axios.$get(`/users/${id}`) 5 if (!user) { throw new Error('invalid user') } 6 commit('setUser', { user }) 7 } 8}
ここでactionに対するテストを書くと以下のようになると思います。
javascript
1let store 2beforeEach(() => { 3 store = new Vuex.Store(cloneDeep(index)) 4}) 5test('login', () => { 6 store.dispatch('login', { id: 'foo_bar' }) 7 expect(store.getters['user'].id).toEqual('foo_bar') 8})
このときにthis.$axiosは当然存在しないのでstubを作りたいのですがどのように作ればよいかわかりません。
いくつか調べた中でaxios + MockAdapterを使用する方法は試したのですが、上手く動作しませんでした。
javascipt
1// beforeEachに追加 2store.$axios = axios.create() 3 4// test内に追加 5const mock = new MockAdapter(store.$axios) 6mock.onGet('/users/foo_bar').reply(200, { id: 'foo_bar' })
回答1件
あなたの回答
tips
プレビュー