yo angular 1 ジェネレーターを使用して、ランディング ページといくつかのテストを作成しました。「module('fountainFooter');」のため、VS でコードをコンパイルできません。未定義です。
/// <reference path="../../typings/index.d.ts" />
import * as angular from 'angular';
import 'angular-mocks';
import {footer} from './footer.ts';
describe('footer component', () => {
beforeEach(() => {
angular
.module('fountainFooter', ['src/app/footer.html'])
.component('fountainFooter', footer);
module('fountainFooter');
});
it('should render \'FountainJS team\'', inject(($rootScope: ng.IRootScopeService, $compile: ng.ICompileService) => {
const element = $compile('<fountain-footer></fountain-footer>')($rootScope);
$rootScope.$digest();
const footer = element.find('a');
expect(footer.html().trim()).toEqual('FountainJS team');
}));
});
モジュールは angular-mocks で定義されたモジュールであると推測しているため、モジュールを angular.mock.module として宣言しようとしました。しかし、それを行うと、次のエラーが発生します。
PhantomJS 2.1.1 (Windows 8 0.0.0) footer component should render 'FountainJS team' FAILED
TypeError: undefined is not an object (evaluating 'angular.mock.module') (line 21)
私が理解しているように、モジュールはブラウザウィンドウで宣言されています。モジュールのみを使用すると、gulp と systemjs を使用して機能します。angular-mock.module を使用すると、VS と typescript は問題なく動作しますが、何も動作しません。