如何模拟在节点模块中导出的使用导入(ES6 打字稿)进行单元测试的外部注入库
How do I mock externally injected libraries that use import (ES6 typescript) exported in a node module for unit testing
在我的主应用程序中,我使用以下方法引入节点包 "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.
我需要知道打字稿(使用 tsc 编译成 js,然后使用 jasmine 命令测试),模拟这些函数的正确方法,这样我就可以判断是否有被调用,我不希望调用真的火了
对于 ES6 导入使用:
import * as name from "library_name"
并在单元测试中使用:
const name = require("library_name");
Requires 可以让您覆盖库中导入不会覆盖的部分
在我的主应用程序中,我使用以下方法引入节点包 "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.
我需要知道打字稿(使用 tsc 编译成 js,然后使用 jasmine 命令测试),模拟这些函数的正确方法,这样我就可以判断是否有被调用,我不希望调用真的火了
对于 ES6 导入使用:
import * as name from "library_name"
并在单元测试中使用:
const name = require("library_name");
Requires 可以让您覆盖库中导入不会覆盖的部分