Je suis nouveau sur Angular 2 (et Angular en général ...) et je le trouve très attrayant. J'utilise Angular CLi pour générer et servir des projets. Cela semble bien fonctionner - bien que pour mes petits projets d'apprentissage, cela produise plus que ce dont j'ai besoin - mais c'était à prévoir.
J'ai remarqué qu'il génère spec.ts
pour chaque élément Angular d'un projet (composant, service, tuyau, etc.). J'ai effectué des recherches mais n'ai pas trouvé d'explication à propos de ces fichiers.
S'agit-il de fichiers de construction qui sont normalement masqués lors de l'utilisation de tsc
? Je me demandais parce que je voulais changer le nom d'un Component
mal nommé et que j'avais créé et découvert que le nom était également référencé dans ces fichiers 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 {
}
Les fichiers de spécifications sont des tests unitaires pour vos fichiers source. La convention pour les applications Angular est d'avoir un fichier .spec.ts pour chaque fichier .ts. Ils sont exécutés à l'aide de la structure de test javascript Jasmine via le programme d'exécution de test Karma ( https://karma-runner.github.io/ ) lorsque vous utilisez la commande ng test
.
Vous pouvez l'utiliser pour d'autres lectures:
si vous générez un nouveau projet angular avec "ng new", vous pouvez ignorer la génération de fichiers spec.ts. Pour cela, vous devez appliquer l'option --skip-tests.
ng new ng-app-name --skip-tests
Les fichiers .spec.ts sont destinés aux tests unitaires de composants individuels. Vous pouvez exécuter le lanceur de tâches Karma via ng test
. Afin de voir la couverture de code des cas de test unitaires pour des composants particuliers, exécutez ng test --code-coverage