首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jest和混合角/AngularJS应用

Jest和混合角/AngularJS应用
EN

Stack Overflow用户
提问于 2017-12-31 09:03:24
回答 1查看 462关注 0票数 3

我正在考虑使用jest来测试我的混合应用程序(角+ AngularJS)。我使用jest-preset-angular进行角度测试,但也需要angular-mocks进行AngularJS测试。

问题是当我在jest-preset-angularangular-mocks中导入setupJest.ts时,所有测试()都失败了,Cannot read property '$injector' of null错误(来自angular-mocks)。

如果我只导入jest-preset-angular所有的角度测试通过,如果我只导入angular-mocks所有的AngularJS测试通过。

我怎样才能让它一起工作?

package.json:

代码语言:javascript
复制
"jest": {
    "preset": "jest-preset-angular",
    "setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts"
}

setupJest.ts:

代码语言:javascript
复制
import 'jest-preset-angular';
import 'angular';
import 'angular-mocks';

const mock = () => {
    let storage = {};
    return {
        getItem: key => key in storage ? storage[key] : null,
        setItem: (key, value) => storage[key] = value || '',
        removeItem: key => delete storage[key],
        clear: () => storage = {},
    };
};

Object.defineProperty(window, 'localStorage', {value: mock()});
Object.defineProperty(window, 'sessionStorage', {value: mock()});
Object.defineProperty(window, 'getComputedStyle', {
    value: () => ['-webkit-appearance']
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-31 11:23:04

结果发现命令很重要。

angular-mocks修复问题之前导入jest-preset-angular

代码语言:javascript
复制
import 'angular';
import 'angular-mocks';
import 'jest-preset-angular';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48041255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档