Я новичок в Angular 2 (и Angular в целом ...), и я нахожу это очень интересным. Я использую Angular CLi для создания и обслуживания проектов. Кажется, это работает хорошо - хотя для моих маленьких учебных проектов, это производит больше, чем мне нужно - но этого следовало ожидать.
Я заметил, что он генерируется spec.ts
для каждого элемента Angular в проекте (Component, Service, Pipe и т. Д.). Я искал вокруг, но не нашел объяснения того, для чего эти файлы.
Это файлы сборки, которые обычно скрыты при использовании tsc
? Мне было интересно, потому что я хотел изменить имя плохо названного, которое Component
я создал, и обнаружил, что имя также упоминается в этих spec.ts
файлах.
import {
beforeEach,
beforeEachProviders,
describe,
expect,
it,
inject,
} from '@angular/core/testing';
import { ComponentFixture, TestComponentBuilder } from '@angular/compiler/testing';
import { Component } from '@angular/core';
import { By } from '@angular/platform-browser';
import { PovLevelComponent } from './pov-level.component';
describe('Component: PovLevel', () => {
let builder: TestComponentBuilder;
beforeEachProviders(() => [PovLevelComponent]);
beforeEach(inject([TestComponentBuilder], function (tcb: TestComponentBuilder) {
builder = tcb;
}));
it('should inject the component', inject([PovLevelComponent],
(component: PovLevelComponent) => {
expect(component).toBeTruthy();
}));
it('should create the component', inject([], () => {
return builder.createAsync(PovLevelComponentTestController)
.then((fixture: ComponentFixture<any>) => {
let query = fixture.debugElement.query(By.directive(PovLevelComponent));
expect(query).toBeTruthy();
expect(query.componentInstance).toBeTruthy();
});
}));
});
@Component({
selector: 'test',
template: `
<app-pov-level></app-pov-level>
`,
directives: [PovLevelComponent]
})
class PovLevelComponentTestController {
}
источник
--spec=false
чтобы исключить создание файла спецификации. Полная команда для создания нового компонента будет:ng g component comp-name --spec=false
. Более подробная информация здесь: github.com/angular/angular-cli/wiki/generate-componentangular-cli.json
следующим образом:{ "defaults": { "component": { "spec": false } } }
если вы генерируете новый угловой проект, используя «ng new», вы можете пропустить генерацию файлов spec.ts. Для этого вы должны применить опцию --skip-tests.
источник
Файлы .spec.ts предназначены для модульных тестов отдельных компонентов. Вы можете запустить бегущего по карме
ng test
. Чтобы увидеть покрытие кода модульных тестов для конкретных компонентов, выполнитеng test --code-coverage
источник
.spec.ts
файл используется дляunit testing
вашего приложения.Если вы не получили его, просто используйте
--spec=false
при создании новогоComponent
. Как этоисточник