0
ハイブリッドアプリケーション(角型+角度型)をテストするのにjest
を使用することを検討しています。 Angularテストにはjest-preset-angular
を使用していますが、AngularJSテストにはangular-mocks
も必要です。ジストとハイブリッド角型/角度型アプリケーション
問題は、私はsetupJest.ts
にjest-preset-angular
とangular-mocks
の両方をインポートすると、すべてのテスト(角とAngularJS)が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']
});