Jestでaxiosはネットワークエラーになってしまう件

JestでAPIを検証しようとした時、axiosからネットワークエラーが発生した。 背景:localhost:9090のwebpack-server経由でlocalhost:8080のバックサービスを叩く

色々調べると、ランタイム環境に関係ありそう。ちゃんとわかってないけど

解決案1

axiosアダプタをnode環境用のhttpアダプタを使うように変更する1。今回これを使って解決した

import axios from 'axios'
import httpAdapter from 'axios/lib/adapters/http'

const instance = axios.create({
    adapter: httpAdapter,
    // ...
});

解決案2

jestのディフォルト環境はブラウザ風のjsdomなので、nodeに変更すればできるはず2

// jest.config.js
module.exports = {
  testEnvironment: "node"
};

又はjest --env=nodeで実行する3

参考

Jestは、axiosで認証されたリクエストを行うと「ネットワークエラー」を返します

configuration#testenvironment-string

Jestでaxiosを使おうとするとNetwork Errorになってうまくいかないときの対処方法

comments powered by Disqus