Je suis nouveau sur Angular 2 (et Angular en général ...) et je le trouve très engageant. J'utilise Angular CLi pour générer et servir des projets. Il semble bien fonctionner - même si pour mes petits projets d'apprentissage, il produit plus que ce dont j'ai besoin - mais c'est normal.
J'ai remarqué qu'il génère spec.ts
pour chaque élément angulaire d'un projet (composant, service, tuyau, etc.). J'ai cherché autour, mais je n'ai pas trouvé d'explication à quoi servent ces fichiers.
Ces fichiers de construction sont-ils normalement masqués lors de l'utilisation tsc
? Je me suis posé la question car je voulais changer le nom d'un mal nommé Component
que j'avais créé et j'ai découvert que le nom était également référencé dans ces spec.ts
fichiers.
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 {
}
la source
--spec=false
pour exclure la génération d'un fichier de spécifications. La commande complète pour générer un nouveau composant serait:ng g component comp-name --spec=false
. Plus d'infos ici: github.com/angular/angular-cli/wiki/generate-componentangular-cli.json
comme ceci:{ "defaults": { "component": { "spec": false } } }
si vous générez un nouveau projet angulaire en utilisant "ng new", vous pouvez ignorer une génération de fichiers spec.ts. Pour cela, vous devez appliquer l'option --skip-tests.
la source
Les fichiers .spec.ts sont destinés aux tests unitaires de composants individuels. Vous pouvez exécuter le gestionnaire de tâches Karma
ng test
. Afin de voir la couverture du code des cas de tests unitaires pour des composants particuliers exécutésng test --code-coverage
la source
.spec.ts
Le fichier est utilisé pourunit testing
votre application.Si vous ne souhaitez pas le générer, utilisez-le
--spec=false
lors de la création d'un nouveauComponent
. Comme çala source