У меня есть один модуль, который я по сути наследую и не могу легко изменить, который я назову other-module
. other-module
выполняет следующие действия в index.js
module.exports={
"key1": "value1",
"key2": "value2",
// ....
};
Существует также файл index.d.ts
с пустым интерфейсом
export interface SomeJsonObject {
}
(в настоящее время я подавляю ошибки, когда Я пытаюсь прочитать из объекта, пустой интерфейс - просто получить код для компиляции на этом этапе)
В моем машинописном коде я могу импортировать это следующим образом
import SomeJsonObject from "other-module";
И это работает, и я могу читать из объекта JSON, как и ожидалось.
Однако в моих модульных тестах для моего машинописного кода я хочу смоделировать SomeJsonObject
, потому что этот объект будет неизменно изменить, и я не хочу, чтобы мои тесты, которые будут проверять, как я читал из него, были привязаны к значениям, которые находятся в другом модуле для value1, value2
et c ...
Так что я хочу макет этого импорта.
В моем тестовом файле для моего кода TypeScript я пробую следующее
import SomeJsonObject from 'other-module';
jest.mock('other-module');
(SomeJsobObject as jest.Mock).mockReturnValue(
{
"key1": "mockValue1",
"key2": "mockValue2",
// ....
}
);
Однако в приведенном выше примере я получаю
TypeError: SomeJsobObject.mockReturnValue is not a function
It похоже, что то, что я делаю, должно работать, когда мой other-module
экспортирует функцию, но что мне делать, когда она экспортировать JSON объект, как я делаю?