У меня есть модуль, который должен вызывать локальную обертку. Чтобы проверить, вызывает ли модуль ПОЛУЧИТЕ выборки обертки правильно я насмешливый и возврат шпиона, как так:Почему шутка не издевается над этим модулем?
// 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.
Так почему же он не называет макет?
Но документы говорят: 'Примечание: при использовании babel-jest призывы к mock будут автоматически подняты в верхней части блока кода. Используйте doMock, если вы хотите явно избегать этого поведения. «Он должен оставаться в пределах одного и того же блока, а не в верхней части файла? – vsjn3290ckjnaoij2jikndckjb
Жаль, что я был немного не прав на этом этапе. Даже тогда перед тем, как вы сможете объявить 'const mockFetch = jest.fn()'. –