Ich bin neu in Angular 2 (und Angular im Allgemeinen ...) und finde es sehr ansprechend. Ich verwende Angular CLi , um Projekte zu generieren und zu bedienen. Es scheint gut zu funktionieren - obwohl es für meine kleinen Lernprojekte mehr produziert, als ich brauche -, aber das ist zu erwarten.
Ich habe festgestellt, dass es spec.ts
für jedes Winkelelement in einem Projekt (Komponente, Service, Rohr usw.) generiert wird . Ich habe mich umgesehen, aber keine Erklärung gefunden, wofür diese Dateien bestimmt sind.
Sind dies Build-Dateien, die normalerweise bei der Verwendung ausgeblendet werden tsc
? Ich fragte mich, weil ich den Namen eines schlecht benannten Namens ändern wollte, den Component
ich erstellt hatte, und entdeckte, dass der Name auch in diesen spec.ts
Dateien referenziert wurde .
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 {
}
quelle
--spec=false
, um die Generierung einer Spezifikationsdatei auszuschließen. Der vollständige Befehl zum Generieren einer neuen Komponente lautet :ng g component comp-name --spec=false
. Weitere Infos hier: github.com/angular/angular-cli/wiki/generate-componentangular-cli.json
wie{ "defaults": { "component": { "spec": false } } }
Wenn Sie mit "ng new" ein neues Winkelprojekt generieren, können Sie das Generieren von spec.ts-Dateien überspringen. Dazu sollten Sie die Option --skip-tests anwenden.
quelle
Die .spec.ts-Dateien sind für Komponententests für einzelne Komponenten vorgesehen. Sie können den Karma-Task-Runner durchlaufen lassen
ng test
. Um die Codeabdeckung von Unit-Testfällen für bestimmte Komponenten anzuzeigen, wird ausgeführtng test --code-coverage
quelle
.spec.ts
Datei wird fürunit testing
Ihre Anwendung verwendet.Wenn Sie es nicht generieren möchten, verwenden Sie es einfach
--spec=false
beim Erstellen eines neuenComponent
. So wasquelle