我正在构建一个离子应用程序,并希望为几个服务添加单元测试。我试图让Jest与Typescript合作,但似乎表现不佳。
我遇到了这个错误:
/myuser/project/node_modules/@ionic/storage/dist/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import { NgModule } from '@angular/core';
^^^^^^
SyntaxError: Unexpected token import
现在,我已经读到您必须添加Babel-Plugin-Transform-es2015-Modules-commonjs,并在Babel的测试环境中使用它。但是我使用的是Babel 7,并且该插件无法用于Babel7。是否有其他解决方案?
我还将在下面提供我的package.json和.babelrc。要点
您只需要在Jest Config中添加 @ionic/storage。例如,这是我的,请注意 @ionic/存储部分:
"transformIgnorePatterns": [
"node_modules/(?!@ngrx|moment|@ionic/storage|@ionic-native)"
]
此外,请确保在Tsconfig编译器选项中您拥有module: 'commonjs'
另外,如果您需要LocalStorage模拟,则可以使用以下NPM模块:
npm install --save-dev jest-localstorage-mock
然后(在您的setupjest.ts文件中(
import 'jest-localstorage-mock
最后,我建议看看:https://github.com/thymikee/jest-preset-angular有关开玩笑 离子配置的更多帮助。