質問: new MockAdapter(store.$axios) mock.onGet('/users/foo_bar').reply(200, { id: 'foo_bar' }) ```
回答: 私はVue/Nuxtの専門家ではありませんが、私見を述べます。 まず `this.$axios` がいつどのように注入されたのかを理解していないと代わりのオブジェクトを差し込むことができないと思います。 そのため既存のコードを変えたくないのであればこの仕組みに精通しダミーの注入方法を発見する必要があると思います。 それができないのであれば `this.$axios` は剥がすことができない密結合なオブジェクトということとなりスタブ/モック化しての単体テストは難しいでしょう。 私なら `this.$axios` の利用自体を慎重に検討します。 少しググって発見した下記の記事ではaxiosをラップする自作の関数を作り、それをテスト時に差し替えているようです。 こちらの方が `this.$nuxt` よりテスト時の交換が容易そうです。 actionの単体テストを諦めるという方針もあり得るでしょう。 そもそもmutationとactionが別れているのは非同期処理というテストが難しい部分をactionに追い出すという目的があると思います。 mutationを単体テストし、actionについてはサーバを含めたE2Eテストで担保するという方針も十分考えられます。 まとめると採れる選択肢は以下でしょう。 1 `this.$axios` がいつ注入されているのかを調査する 2 `this.$axios` を使うのを辞め、自分で疎結合な仕組みを導入する 3 mutationのテストのみで妥協し、actionsはE2Eテストで担保する