带开玩笑的离子服务单元测试



我正在构建一个离子应用程序,并希望为几个服务添加单元测试。我试图让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有关开玩笑 离子配置的更多帮助。

相关内容

  • 没有找到相关文章

最新更新