我有以下js文件:
// db.js
export default /* ... */;
export const tableName = /* ... */;
以及以下模拟(使用笑话):
const MockDb = jest.genMockFromModule('../db.js');
export default MockDb.default;
export const { tableName } = MockDb;
现在,如果我将导出添加到原始db.js
文件中,则还必须相应地触摸模拟。我宁愿模拟文件仅自动导出MockDb
对象(这是jest
按住default
键和每次导出的其他命名属性生成的模块对象)中的所有导出内容
According to MDN,export * from X
仅当X
是引用模块的字符串时,语法才有效。我能以某种方式export * from <moduleObject>
吗?
谢谢!
答案 0 :(得分:0)
我能以某种方式
export * from <moduleObject>
吗?
不,您不能。导出名称必须是静态声明的,无法在运行时从对象确定它们。
正确的方法是使用模块加载器插件,当您执行import … from '../db.js!jest';
之类的操作时,该插件会自动调用Jest。