1
ローカルフェッチラッパーを呼び出すはずのモジュールがあります。jestはなぜこのモジュールをモックしませんか?
// get.js
import fetch from '../fetch'
const get = (endpoint, token) => {
const headers = new Headers()
if (token) {
headers.append('Authorization', `Bearer ${token}`)
}
const init = {
headers,
method: 'GET'
}
return fetch(new Request(endpoint, init))
}
export default get
// get.test.js
import 'isomorphic-fetch'
import get from './get'
describe('get',() => {
it('calls fetch with a request',() => {
// I'm expecting this spy to be called by get
const mockFetch = jest.fn()
jest.mock('../fetch',() => jest.fn(mockFetch))
get('endpoint', 'token')
expect(mockFetch).toHaveBeenCalled()
})
})
しかし、私が実行したとき、それは冗談で失敗します:
expect(jest.fn()).toHaveBeenCalled()
Expected mock function to have been called.
GETモジュールは、私はそれをからかっなどのようなスパイを返すよフェッチラッパーを正しく呼び出すかどうかを確認するには
それではなぜそれは模造品を呼んでいないのですか?
しかし、ドキュメントは次のように言っています: '注:バベル・ジェストを使用すると、モックへの呼び出しは自動的にコードブロックの上部に吊り上げられます。明示的にこの動作を避けたい場合は、doMockを使用してください。 'ファイルの先頭ではなく、同じブロック内に残す必要がありますか? – vsjn3290ckjnaoij2jikndckjb
申し訳ありませんが、私はこの時点で少し間違っていました。それまでは 'const mockFetch = jest.fn()'を宣言することができます。 –