Я столкнулся с проблемой, которую не могу решить самостоятельно, может быть, некоторые из вас сталкивались с той же проблемой.
Позвольте мне показать вам, что я пытаюсь сделать, вотmock:
let mockConfig = {name: 'dude'};
jest.mock('../../../configManager', () => mockConfig);
configManager - это зависимость функции, которую я пытаюсь протестировать.
Работает хорошо, но я хочу изменить возвращаемый объект configManagerв другом тесте, поэтому тестируемая функция ведет себя по-разному.
Позвольте мне показать вам, вот функция, которую я тестирую:
const config = require('../../../configManager');
module.exports = () => {
if (config.name === 'dude') {
do stuff;
}
if (config.name === 'dudette') {
do something else;
}
Итак, как правило, я хочу изменитьconfig.name для 'dudette' , чтобы иметь возможность проверить вторую часть моей функции.
Естественно, когда я хочу сделать это с импортированной функцией, я просто делаю:
let mockJsonQueryResult = { value: 'stuff' };
jest.mock('json-query', () => jest.fn(() => mockJsonQueryResult));
и затем в тесте я непосредственно устанавливаю другое значение mockJsonQueryResult:
mockJsonQueryResult = { value: 'hotterStuff' };
Но я не нахожу никакого способа сделать это с зависимостью, которая возвращает объект, с зависимостьюВозврат функции - без проблем.
Есть ли способ сделать это?
Заранее спасибо!
Редактировать: это не то же самое, что как изменить возвращаемое значение функции jest mock в каждом тесте? , как предложил @Dor Shinar, потому что его проблемачтобы смоделировать функцию, даже если она находится внутри возвращаемого объекта, она все еще является функцией, я просто хочу изменить значение внутри возвращаемого объекта.