Jestem nowy w Angular 2 (i ogólnie Angular ...) i uważam, że jest bardzo wciągający. Używam Angular CLi do generowania i obsługi projektów. Wydaje się, że działa dobrze - chociaż w przypadku moich małych projektów edukacyjnych produkuje więcej, niż potrzebuję - ale tego należy się spodziewać.
Zauważyłem, że generuje on spec.ts
dla każdego elementu Angular w projekcie (komponent, usługa, rura itp.). Szukałem w okolicy, ale nie znalazłem wyjaśnienia, do czego służą te pliki.
Czy te pliki kompilacji są zwykle ukryte podczas używania tsc
? Zastanawiałem się, ponieważ chciałem zmienić nazwę źle nazwanego Component
, który utworzyłem, i odkryłem, że w tych spec.ts
plikach jest również mowa o nazwie .
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 {
}
źródło
--spec=false
aby wykluczyć generowanie pliku specyfikacji. Pełne polecenia do generowania nowego komponentu będzie:ng g component comp-name --spec=false
. Więcej informacji tutaj: github.com/angular/angular-cli/wiki/generate-componentangular-cli.json
następujący sposób:{ "defaults": { "component": { "spec": false } } }
jeśli generujesz nowy projekt kątowy za pomocą „ng new”, możesz pominąć generowanie plików spec.ts. W tym celu należy zastosować opcję --skip-testy.
źródło
Pliki .spec.ts służą do testów jednostkowych poszczególnych składników. Możesz uruchomić biegacza zadań Karmy
ng test
. Aby zobaczyć pokrycie kodu jednostkowych przypadków testowych dla poszczególnych uruchomionych komponentówng test --code-coverage
źródło
.spec.ts
plik jest używany dlaunit testing
Twojej aplikacji.Jeśli nie chcesz go wygenerować, użyj go
--spec=false
podczas tworzenia nowegoComponent
. Lubię toźródło