profcfuhrmanets / log210-systeme-gestion-bordereau-node-express-ts

Système de gestion des bordereaux (SGB) utilisé dans le cadre du cours de LOG210.
https://profcfuhrmanets.github.io/log210-systeme-gestion-bordereau-node-express-ts/
0 stars 17 forks source link

Les tests ne garantissent pas le fonctionnement du SGB #23

Open Olon11 opened 2 months ago

Olon11 commented 2 months ago

Lorsque j'ai fait des changements au SGB, j'ai exécuté les tests et ça passait. Quand j'ai exécuté npm run start, le SGB ne fonctionnait pas. Je crois que les tests sont exécutés via les fichiers Typescript directement, ce qui ne réplique pas correctement le vrai fonctionnement de l'API. On ne peut donc pas se fier 100% aux tests pour savoir si nos changements ont brisé le SGB.

fuhrmanator commented 2 months ago

Peux-tu me donner plus de détails? Quelle était l'erreur? Comment l'as-tu résolue? Je peux comprendre ton point, mais tel qu'il est écrit, on peut jamais "fermer" ce billet.

"Les tests ne garantissent pas le fonctionnement d'un logiciel" est assez vrai pour n'importe quel logiciel. ;-)

Olon11 commented 2 months ago

Dans mon cas, c'était un import qui ne marchait dans les tests, mais pas dans le fonctionnement de l'application. Plus spécifiquement, j'avais changé import Multimap = require("multimap"); par import Multimap from "multimap"; dans Grade.

Je comprends que les tests ne valident pas tout, mais c'est problématique si ça ne valide pas ce cas.

Olon11 commented 2 months ago

Voir #27 et #28 pour d'autres exemples

fuhrmanator commented 2 months ago

J'ai fait une PR pour #27 -- un problème était avec les données et aussi un autre avec la config de TypeScript.

Idéalement on peut utiliser un outil comme gulp ou webpack. SGB n'est pas si compliqué, pourtant il y a une dizaine de scripts npm.

fuhrmanator commented 2 months ago

Ce package est très populaire sur npm: https://www.npmjs.com/package/start-server-and-test

Je crois qu'on pourrait l'utiliser pour lancer le serveur, puis rouler les tests. Il faudra voir si on peut garder les même tests...