我正在尝试使用 Typescript 在 Next.js 项目中使用 Jest 来测试我的组件。 我收到的错误如下:
无法从“我的组件路径”中找到模块“split-pane-react”运行测试用例。 我尝试将 jest.config.js 中的 moduleNameMapper 中的路径添加为
'split-pane-react': '<rootDir>/node_modules/split-pane-react/esm/index.js'
但它给出这样的导出错误
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){export * from './SplitPane';
^^^^^^
SyntaxError: Unexpected token 'export'
我还尝试过transformIgnorePatterns
来解决导出问题,但这也不起作用。 套餐版本:
“反应”:“18.2.0”,
“下一个”:“12.3.4”,
“开玩笑”:“29.7.0”,
“ts-jest”:“29.1.1”,
“ts-node”:“10.9.1”,
{
moduleNameMapper: {
'split-pane-react': '<rootDir>/node_modules/split-pane-react/esm/index.js'
}
}
由于没有解析重定向的文件,这仍然会出现错误,为此你需要做的是在 setupFilesAfterEnv 中模拟完整的包以满足你的要求,如下所示:
jest.mock('split-pane-react', () => ({
__esModule: true,
default: jest.fn(({ children, sashRender, allowResize }) => (
<>
{children}
{sashRender && sashRender(1, allowResize)}
</>
)),
Pane: jest.fn(({ children }) => <>{children}</>)
}));