Как смоделировать библиотеки с внешним внедрением, которые используют импорт (машинопись ES6), экспортированную в модуле узла для модульного тестирования - PullRequest
1 голос
/ 13 января 2020

В моем основном приложении я добавляю пакет узлов "ibm_db", используя: import * as ibmdb from "ibm_db";

В моих модульных тестах я хочу иметь возможность переопределить это, тогда я: import * as ibmdb from "ibm_db";

в моем модульном тесте, а затем:

beforeEach(() => {
   ibmdb.open = jasmine.createSpy("open");
});

Я получаю сообщение об ошибке:

Cannot assign to 'open' because it is a readOnly property.

Мне нужно знать с машинописью (будучи скомпилированным в js с использованием ts c, затем протестирован с помощью команды jasmine), правильный способ для насмешки этих функций, чтобы я мог сказать, что при вызове я не хочу, чтобы вызовы действительно запускались.

1 Ответ

0 голосов
/ 20 января 2020

Для импорта ES6 используйте:

import * as name from "library_name"

и в модульных тестах используйте:

const name = require("library_name");

Требуется позволит вам перезаписать части библиотеки, где импорт не будет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...