Ответ 1
Ваша подоходная доза не работает, потому что вы издеваетесь clearSomethingInModal
только в контексте вашего тестового файла, поэтому clearSomethingInModal
в myFunction.js
по-прежнему является оригиналом. Главное, что вы не можете издеваться над тем, что создано непосредственно в myFunction.js
. Единственное, что вы можете высмеять, это
- которые вы импортируете в
myFunction.js
, напримерimport clearSomethingInModal from 'clearSomethingInModal'
- которые вы передаете в свою функцию при вызове их из своего теста
Это имеет смысл, если вы думаете о myFunction.js
как о черном ящике, где вы можете контролировать, что происходит, например, импорт или аргументы функции, и где вы можете проверить, что происходит. Но вы не можете проверить материал, который происходит внутри коробки.
Вот два примера, которые отражают 2 точки в списке
myFunctions.test.js
import { resetModal } from '../myFunctions.js';
import clearSomethingInModal from 'clearSomethingInModal';
jest.mock('clearSomethingInModal', () => jest.fn())
describe('resetModal', () => {
it('calls the clearSomethingInModal function', () => {
resetCreationModal();
expect(clearSomethingInModal.mock.calls.length).toBe(1);
})
})
myFunctions.js
import clearSomethingInModal from 'clearSomethingInModal';
export resetModal() {
clearSomethingInModal()
}
myFunctions.test.js
import { resetModal } from '../myFunctions.js';
describe('resetModal', () => {
it('calls the clearSomethingInModal function', () => {
const clearSomethingInModal = jest.fn();
resetCreationModal(clearSomethingInModal);
expect(clearSomethingInModal.mock.calls.length).toBe(1);
})
})
myFunctions.js
export resetModal(clearSomethingInModal) {
clearSomethingInModal()
}