내 하이브리드 응용 프로그램 (Angular + AngularJS) 테스트에 jest
을 사용하려고합니다. Angular 테스트에는 jest-preset-angular
을 사용하고 있지만 AngularJS 테스트에는 angular-mocks
도 필요합니다. 나는 모두 jest-preset-angular
및 setupJest.ts
에서 angular-mocks
, 모든 (각도 및 AngularJS와) 테스트 (angular-mocks
에서 오는) Cannot read property '$injector' of null
오류와 함께 실패를 가져올 때 Jest와 Hybrid Angular/AngularJS 응용 프로그램
문제
입니다.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']
});