Retour aux actualités

Tests unitaires en Solidity : Hardhat et Foundry

Les tests unitaires sont des tests automatisés qui permettent de vérifier le fonctionnement correct d’une partie ciblée du code d’un projet. Dans le contexte des smart contracts, les tests unitaires sont utilisés pour :

  • s’assurer que chaque module du contrat fonctionne comme prévu ;
  • vérifier que le contrat interagit correctement avec les autres contrats et le réseau blockchain.

Les smart contracts étant irréversibles une fois déployés dans la blockchain, les tests unitaires sont indispensables en préalable au développement. Ils sont la garantie de smart contracts sécurisés.

Pour tester les smart contracts développés en Solidity, beaucoup de développeurs utilisent Hardhat, Inc., un framework populaire s’appuyant sur les langages JavaScript ou TypeScript. Il offre un environnement de développement complet permettant :

👉 la compilation,

👉 le débogage,

👉 le déploiement,

👉 et la vérification des smart contracts.

La plupart des développeurs testent leurs smart contracts en utilisant Javascript ou Typescript, toutefois ces tests nécessitent de grandes dépendances (dans node_modules). Le framework Foundry, lancé en décembre 2021 permet de fournir un environnement de développement complet en permettant d’écrire les tests unitaires directement en Solidity. Grâce à Foundry, l’écriture des tests est complétée par :

💡La fonctionnalité Fuzz : injection d’entrées aléatoires dans les fonctions ;

💡La compilation rapide des smart contacts ;

💡Le lancement (complets) de tous les tests ;

💡La génération des rapports détaillés avec un affichage de la “consommation de gaz” de chaque fonction testée.

Avec une communauté très impliquée et active, Foundry a déjà gagné l’appréciation de nombreux développeurs.

Finalement, Hardhat et Foundry sont deux outils populaires pour les tests unitaires en Solidity. Ils offrent une gamme de fonctionnalités permettant d’aider les développeurs à s’assurer que leurs smart contracts fonctionnent correctement.

En utilisant ces outils, les développeurs peuvent créer des applications décentralisées de haute qualité et fiables qui inspirent la confiance des utilisateurs et des investisseurs.

Tests unitaires
Solidity
Smart contrat