L’équipe Angular souhaite constamment améliorer son application pour satisfaire les développeurs. Les tests sont importants pour l’application afin de créer efficacement des applications Web hautement évolutives et complexes. Les tests unitaires se concentrent sur le test des plus petites unités d’une base de code. Pour Angular, cela inclut des tests de composants et des services individuels.
Avant de se lancer
Vous avez la possibilité de suivre notre formation Angular sur 3 jours durant laquelle vous apprendrez à concevoir des applications Web efficaces, à créer vos propres composants réutilisables et à gérer les différentes facettes de la technologie.
Si vous avez déjà de l’expérience sur Angular, nous vous proposons notre formation Angular Avancé. Vous apprendrez à résoudre tous les problèmes d’orchestration sur RxJS, l’amélioration des performances de votre site Web ou développer et la gestion des composants Angular.
L’équipe Ambient IT
Des tests unitaires lents
Après avoir interrogé les développeurs Angular sur les performances de l’application sur lesquels ils étaient le plus satisfait, l’enquête a montré que les tests étaient très peu mentionnés. Selon les développeurs, les tests étaient lourds et difficiles à intégrer aux systèmes d’intégration continue (CI). Karma était le seul exécuteur de test unitaire pris en charge, il exploitait un véritable navigateur qui compliquait les systèmes CI, avec les téléchargements et la gestion des versions des navigateurs. C’est la raison pour laquelle les tests étaient si lents et lourds.
Une alternative pour les tests
Depuis la sortie de la nouvelle version Angular 16, des nouveautés ont été apportées (d’ailleurs, nous avons écrit un article à ce sujet) au niveau des tests avec l’intégration d’un nouvel exécuteur de tests unitaires. Jest est un exécuteur de test unitaire basé sur l’exécution directe dans Node sans utiliser de véritable navigateur. Jest a permis la réalisation de nombreux projets communautaires. Cette approche démontre qu’il peut être utilisé avec Angular à grande échelle.
Cependant, cette nouveauté reste encore en phase de test, il faut donc éviter de s’en servir pour les projets les plus importants. Pour l’utiliser, il faut avoir actualisé sa version Angular vers la v16 et modifier son `angular.json`de cette manière :
{
"projects" : {
"my-app" : {
"architect" : {
"test" : {
"builder" : "@angular-devkit/build-angular:jest" ,
"options" : {
"tsConfig" : " tsconfig.spec.json " , " polyfills
" : [ "zone.js" , "zone.js/testing" ]
} }
} } } }
Jest deviendra officiellement l’exécuteur de test unitaire après qu’Angular ait obtenu un bon nombre de résultats concrets des performances de l’exécuteur.
Test du navigateur
L’écosystème Web a énormément progressé durant ses 10 dernières années et de nombreuses solutions très convaincantes ont fait leur apparition. C’est le cas de Web Test Runner, un exécuteur de test unitaire basé sur le navigateur. Il a été développé par Modern Web, une organisation spécialisée dans l’amélioration des outils Web pour les faire fonctionner avec les technologies et les navigateurs modernes. Cet outil pourrait exceller dans l’écosystème d’Angular.
Pour la sortie d’une prochaine version d’Angular, nous verrons sûrement la mise en place de Web Test Runner. L’outil peut répondre aux besoins des tests unitaires basés sur un navigateur Angular et proposer une base solide pour les tests unitaires à l’avenir.
La stabilité de l’écosystème et la rétrocompatibilité sont des points importants d’Angular. La migration hors de Karma devrait se faire de manière transparente. Web Test Runner doit s’intégrer à Jasmine pour fournir une expérience de test semblable à la configuration actuelle de Karma. Un support « ng update » devrait également être fourni pour la migration des tests Karma existants vers Web Test Runner.
Malgré l’importance de Karma dans le développement d’Angular durant ses dernières années, Jest et Web Test Runner le remplaceront certainement. En effet, ils auront un impact significatif pour le futur d’Angular grâce à l’amélioration de performances des tests unitaires.
Conclusion
Les tests unitaires sont en cours de développement pour permettre aux développeurs de concevoir des applications Web très performantes. Plusieurs phases de tests sont mis en place afin de trouver l’outil idéal pour que de grands projets puissent être concrétisés. Dans un avenir proche, Angular trouvera l’exécuteur de test unitaire le plus apte à améliorer l’expérience de l’application.