Угловой тест с кармой
Я использовал генератор yo angular 1, и он создал целевую страницу и несколько тестов. Я не могу скомпилировать код в VS, потому что "module('fountainFooter');" не определено
/// <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 и машинопись радуются, но, конечно, ничего не работает.
1 ответ
Это один из способов сделать это.
/// <reference path="../../typings/index.d.ts" />
describe('footer component', () => {
beforeEach(angular.mock.module('app', ($provide: ng.auto.IProvideService) => {
$provide.factory('fountainFooter', () => {
return {
templateUrl: 'app/footer.html'
};
});
}));
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');
}));
});
Также взято из yo angular#1 генератора, но сгенерировано с использованием скрипта option.