Rechercher

Ecrire des tests moderne dans 4D? Oui c'est possible!

Beaucoup de développeurs 4D demandent si nous pouvons écrire des tests unitaires dans 4D. Oui, vous pouvez écrire un test unitaire avec 4D mais il n'y avait pas de moyen facile de le faire. Vous devez créer vos propres routines.

Un composant existait il y a longtemps, vous pouvez encore trouver le code source de la v12 ici markschaake/UnitTester4D

Si vous regardez le code, vous serez peut-être, comme moi, repoussé par la complexité de l'architecture. Eh bien, cela a été fait il y a longtemps et sans la notation de l'objet donc je ne vais pas blâmer.


Je lit depuis longtemps les articles sur le développeur JavaScript Eric Elliot qui encouragent les gens à utiliser l'architecture TDD (Test Driven Development). Avec JavaScript, vous disposez d'une douzaine de bibliothèques pour écrire des tests unitaires. Vous pouvez même écrire des tests pour la partie graphique car tout est lisible dans le DOM.


En 4D, c'est un peu plus complexe. Vous pouvez écrire des tests unitaires et des tests d'intégration partielle. Mais tout ce qui touche à l'interface graphique est vraiment compliqué à faire (pour ne pas dire impossible). Les seuls que j'ai pu voir faire des tests d'interfaces graphiques sont les services 4D avec des spécialistes (vous pouvez trouver leur service ici : Quality Assurance Automation Services).


Ainsi, inspiré par la bibliothèque de tests RITEway écrite par Eric Elliot, j'ai voulu faire quelque chose de similaire et d'aussi simple.

Ce que dit Eric Elliot, c'est que certaines bibliothèques de tests ne parviennent pas à décrire correctement un test. Voici ce qu'un test devrait avoir :

  1. Qu'est-ce que l'unité sous test (module, fonction, classe, etc.) ?

  2. Que devrait-il faire ? (Description du texte)

  3. Quel a été le résultat réel ?

  4. Quel était le résultat attendu ?

  5. Comment reproduire l'échec ?

La description d'un test est simple, voici une capture d'écran d'un test avec 2 assertions.


Le composant dispose également d'une fenêtre principale pour afficher les résultats :

Ici un test ne passe pas

Je veux aussi le partager librement avec la communauté 4D. Vous pouvez le trouver dans le dépôt Github de ma société : AJARProject/AJ_Tools_UnitTest

Vous trouverez également la documentation.

J'espère que ce composant sera appréciée et qu'il vous aidera à écrire des tests appropriés. Si vous avez des questions, n'hésitez pas à me les poser.


N'oubliez pas non plus de lire les 2 articles qui m'ont inspiré à écrire ce composant. Ils expliquent aussi très bien quels sont les différents types de tests :

JavaScript Testing: Unit vs Functional vs Integration Tests

Rethinking Unit Test Assertions


26 vues

Posts récents

Voir tout

Me contacter

  • Twitter
  • YouTube

Biel/Bienne - Bern - Switzerland