我正在考虑使用jest来测试我的混合应用程序(角+ AngularJS)。我使用jest-preset-angular进行角度测试,但也需要angular-mocks进行AngularJS测试。
问题是当我在jest-preset-angular和angular-mocks中导入setupJest.ts时,所有测试()都失败了,Cannot read property '$injector' of null错误(来自angular-mocks)。
如果我只导入jest-preset-angular所有的角度测试通过,如果我只导入angular-mocks所有的AngularJS测试通过。
我怎样才能让它一起工作?
package.json:
"jest": {
"preset": "jest-preset-angular",
"setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts"
}setupJest.ts:
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']
});发布于 2017-12-31 11:23:04
结果发现命令很重要。
在angular-mocks修复问题之前导入jest-preset-angular:
import 'angular';
import 'angular-mocks';
import 'jest-preset-angular';https://stackoverflow.com/questions/48041255
复制相似问题