javascript - 如何从类型定义中模拟声明的类?
问题描述
我有以下代码试图测试一些使用 API 的代码。我还尝试通过执行以下操作来模拟 API:
import { mocked } from 'ts-jest/utils';
import joplin from '../api/index'
jest.mock('../api/index');
import { NoteSelectWindow } from "../src/NoteSelectWindow";
describe('NoteSelectWindow', () => {
const mockedJoplin = mocked(joplin, true);
it("dfdf", async () => {
mockedJoplin.views.dialogs.create.mockResolvedValue("testId");
let dlg = new NoteSelectWindow();
await dlg.init("sdfsdf");
expect(mockedJoplin.require).toHaveBeenCalled();
expect(dlg.handle).toBe("testId");
});
});
但是,当我运行测试时,我在 api index.ts 中收到以下错误:
这是index.ts
:
import type Joplin from './Joplin';
declare const joplin: Joplin;
export default joplin;
我假设它破坏的原因是因为在索引中导入的乔普林实际上是一个类型定义而不是一个真正的类。如何解决这个问题?知道我无权访问实际的 .js 文件。
解决方案
推荐阅读
- python - TypeError: 输入类型不支持 ufunc 'isnan',输入无法安全强制
- python - 在特定时间段内为特定 ID 绘制多个文件之间的绘图
- networking - 创建 ifcfg-eth1 时网络没有合适的设备
- c - C中是否存在“枚举类”?
- android - Android Studio 3.3:看不到布局预览
- typescript - 混合项目中 .js 文件的 Typescript 声明
- azure - 如何减少 Azure Web 应用临时文件的使用
- hyperledger-fabric - Hyperledger Fabric - 将私人数据从一个人的集合复制到另一个组织的集合
- android - 使用 Intents 时回栈不断添加
- java - 在 Eclipse 中从 git 导入后,出现错误“源文件夹不是 java 项目”