Я тестирую функцию, которая вызывает другую функцию, импортированную из anotherFile
. Это outsideFunc
возвращает объект, который содержит «имя». Мне нужно, чтобы это существовало, чтобы пройти через весь мой тест / функцию для правильной работы.
systemUnderTest.js
import { outsideFunc } from './anotherFile.js';
function myFunc() {
const name = outsideFunc().name;
}
anotherFile.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
.