jesuisundesdeux / vigilo-backend

GNU General Public License v3.0
28 stars 20 forks source link

[REFLEXION] Ajout de tests automatiques sur l'API #265

Open jeffd-dev opened 1 year ago

jeffd-dev commented 1 year ago

Bonjour

Vigilo a été développé pour être rapidement opérationnel du coup il manque de tests automatiques. Je propose d'en rajouter quelques un au niveau de l'API, afin de s'assurer que le backend est toujours compatible avec les APP (Android...).

Je vois deux avantages à tester au niveau API plutôt que des tests unitaires:

Qu'en pensez-vous ? Avez-vous une préférence sur l'outil ? (J'aurais tendance à expérimenter avec un script python)

YvesPasteur commented 1 year ago

Bonjour @jeffd-dev

C'est une bonne idée.

Pour l'outil, il faut sans doute que ça permette de mocker les dépendances externes pour certains endpoints (par-exemple appels à umap) ? Dans l'optique de réduire la complexité générale à contribuer, est-ce qu'on ne peut pas plutôt partir sur quelque chose de l'écosystème PHP afin d'éviter de rajouter un langage différent ?

Personnellement pour ce type de tests j'ai déjà eu à utiliser behat (en mode BDD, https://docs.behat.org/en/latest/index.html) ou phpunit (similaire à tous les frameworks de tests XUnit).

jeffd-dev commented 1 year ago

Bonjour @YvesPasteur

--

J'ai commencé à écrire quelques tests en utilisant les assertions/functions de PhpUnit mais en les implémentant moi même pour ne nécessiter aucune dépendance (mais permettre un passage sur PhpUnit ultra simple).

J'ai crée le OpenApi, c'est une définition normalisée de l'API, en gros la page doc/REST_API.md mais en Yaml. Je pensais que l'outil Insomnia allait pouvoir m'aider a créer quelques test rapidement à partir de ce doc mais en fait non. L'avantage d'un document OpenApi c'est qu'il existe des outils (Insomnia, Postman, Swagger ou des extensions Vscode) pour afficher une doc interactive avec la possibilité de faire les appels. C'était pas immédiatement utile ou vraiment nécessaire mais ça m'aide pour les tests.

Il existe toujours un slack ? Est-ce que j'aurais du passer par lui ? J'ai l'impression que le Github est pas très suivi et j'ai plein d'idées à proposer ...

YvesPasteur commented 1 year ago

Oui, sur le slack ce sera peut-être plus simple : jesuisundesdeux.slack.com Il y a un groupe de canaux dédiés à vigilo.