L'échafaudage pour les fichiers .ts existants peut être créé en utilisant la fonction https://github.com/smnbbrv/ngx-spec
Pour l'installer dans un projet Angular :
npm i -D ngx-spec@^2.0.0
(-D est l'abréviation de --save-dev)
exemple d'utilisation (pour un service) :
ng g ngx-spec:spec path/my.service
ou
ng g ngx-spec:spec path/my.service.ts
Pour un service, cela ne permet pas de mettre en place un test à créer par injection. Adaptez pour que le test ressemble à quelque chose comme ceci :
import { TestBed, inject } from '@angular/core/testing';
import { DataService } from './data.service';
import { AuthService } from './auth.service';
import { HttpClient, HttpHandler } from '@angular/common/http';
describe('DataService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [DataService, AuthService, HttpClient, HttpHandler
]
});
});
it('should be created', inject([DataService, AuthService], (service: DataService) => {
expect(service).toBeTruthy();
}));
});
Il doit également être possible de générer des tests en utilisant un caractère générique, par exemple.
ng g ngx-specs '**/*
Cela n'a pas fonctionné pour moi - voir le problème GitHub :
https://github.com/smnbbrv/ngx-spec/issues/10
Note - En tant que stratégie pour mettre en œuvre le développement piloté par les tests, j'ai trouvé que le plus simple était de rechercher et de supprimer toutes les données existantes de l *.spec.ts
qui avaient été automatiquement créés dans le projet Angular dans le cadre de la création initiale de l'artefact (en effectuant une recherche dans l'explorateur Windows), puis, comme point de départ, j'ai créé un seul test pour le principal service de fournisseur de données Angular, en utilisant le fichier ngx-spec
3 votes
Les tests sont importants dans un projet à croissance rapide ! Lorsqu'il s'agit d'un grand projet, vous souffrirez de problèmes d'effets secondaires et le projet se développera lentement. QED
0 votes
Vous avez raison. Il se peut que je me sois mal exprimé : lorsque les exigences ne sont pas encore claires et que le projet en est au stade de la validation du concept, les tests posent un réel problème. C'est pourquoi il est bon de pouvoir les générer un peu plus tard :)