Par
Joris Langlois
Date
04/12/2024
01
Présentation
Parce que c'est notre projet
04
Approche en intégration
Say hello to MSWjs
02
Contexte
Nature du projet et architecture
05
Conséquences
03
Approche unitaire
Rapide, simple, mais pour quelle fiabilité ?
06
Limites
There is no silver bullet
Fondé en 2009
30 KNPeers : devs, fafas, UX designers, alternants
2 agences : Nantes, Caen
Développement
sur mesure
Expertise technique sur Symfony / React.JS
Méthodologie KNP permettant d'extraire les besoins spécifiques
Accompagnement et aide à la décision technique et fonctionnelle
Méthodologie
agile
Méthodologie basée sur les fondements agiles
Amélioration continue tout au long des projets
2 coachs certifiés Scrum Master accompagnent l'équipe et les clients
Accompagnement
personalisé
Conseil et accompagnement sur l'orchestration des SI
Expertise sur Docker / Cloud / Ansible / Kubernetes / Swarm…
Accompagnement et mise en place de migration d'hébergement
Et aussi ...
Apps mobiles
Sites publics à fort
trafic
Outils internes de gestion de production
Défimedoc, Deliver events, ...
Imparfaite Paris, 9e store, ...
Brand & Shop, Packaging, anaka, ...
Gestion de la production
400 utilisateurs
Anakà
Objectif zéro papier
Stack technique
SPA React / Redux / Redux-Saga
API Symfony + mercure pour le temps réel
Rappels élémentaires
Problème :
Tests unitaires
Ecole fonctionnelle
Tests de selecteurs
Tests de side effects (appels d'API, clipboard, local storage, ...)
Tests de composants React
Risques de faux positifs
Risques de faux négatifs
Un bilan mi-figue mi-raisin
Articles de référence
https://kentcdodds.com/blog/write-tests
https://testing.googleblog.com/2024/10/smurf-beyond-test-pyramid.html
Pourquoi tester l'intégration de nos composants ?
Tests d'intégration
Tests unitaires
Serveur
Handlers
Scénario nominal
Scénario d'échec
Fixtures
Quid des tests E2E ?
Les sélecteurs type accesseurs sont testés "indirectement"
La plupart des side effects sont aussi testés indirectement à partir du moment où l'interface change en réaction à une action système
Plus besoin de dispatcher des actions à la main pour simuler un comportement
Moins de faux positifs
Risque de tests un peu instables lors de certains enchaînements
Prise en main : tout est asynchrone !
Plus lents que des tests unitaires
Sources
https://knplabs.com/fr/blog/des-tests-unitaires-aux-tests-dintegration-les-changements-apportes-par-msw-a-nos-strategies-de-tests/
https://knplabs.com/en/blog/from-unit-testing-to-integration-testing-setup-findings-and-limits/