Я тестирую функцию, которая вызывает другую функцию, импортированную из anotherFile
. Этот outsideFunc
возвращает объект, который содержит «имя». Мне нужно, чтобы это существовало, чтобы пройти остальную часть моего теста/функцию, чтобы она работала правильно.
systemUnderTest.js
import { outsideFunc } from './anotherFile.js';
function myFunc() {
const name = outsideFunc().name;
}
другой файл.js:
export function outsideFunc() {
return { name : bob }
}
Меня не волнует тестирование anotherFile
или результат outsideFunc
, но мне все равно нужно вернуть фиктивное значение как часть тестирования myFunc
;
systemUnderTest.spec.js
describe("A situation", () => {
jest.mock("./anotherFile", () => ({
outsideFunc: jest.fn().mockReturnValue({
name: 'alice'
})
}));
it("Should continue through the function steps with no problems", () => {
expect(excludeCurrentProduct(initialState)).toBe('whatever Im testing');
});
});
Проблема, которую я получаю, заключается в том, что когда модульный тест работает через myFunc
, const name
возвращает undefined
, где он должен возвращать alice
. Я бы ожидал, что он получит данные из моего jest.mock
файла anotherFile
и его фиктивной экспортированной функции, но он не получит правильного ответа.
Когда я утверждаю, что ожидаю name = alice
, я на самом деле получаю name = undefined
.