Test sans beforeEach()
La plupart des suites de tests de ce guide appellent
beforeEach()
à
définir les conditions préalables pour chaque
it()
test et s'appuient sur
TestBed
pour créer des classes et injecter des services.
Il existe une autre école de test qui n'appelle jamais
beforeEach()
et préfère créer des classes de manière explicite plutôt que d'utiliser le
TestBed
.
Voici comment vous pouvez réécrire l'un des tests
MasterService
dans ce style.
Commencez par insérer du code préparatoire réutilisable dans une fonction de configuration au lieu de
beforeEach()
.
La fonction
setup()
renvoie un littéral d'objet avec les variables, telles que
masterService
celles qu'un test pourrait référencer.
Vous ne définissez pas de variables semi-globales (par exemple,
let masterService: MasterService
) dans le corps du fichier
describe()
.
Ensuite, chaque test appele
setup()
dans sa première ligne,
avant de poursuivre avec les étapes qui manipulent le sujet du test et affirment les attentes.
Notez que le test utilise
l'affectation de déstructuration
pour extraire les variables de configuration dont il a besoin.
De nombreux développeurs estiment que cette approche est plus propre et plus explicite que le style
beforeEach()
traditionnel.
Bien que ce guide de test respecte le style traditionnel et que les schémas CLI par défaut génèrent des fichiers de test avec
beforeEach()
et
TestBed
,
n'hésitez pas à adopter cette approche alternative dans vos propres projets.