Maison >Périphériques technologiques >Industrie informatique >Truffe: tester les contrats intelligents

Truffe: tester les contrats intelligents

Christopher Nolan
Christopher Nolanoriginal
2025-02-16 09:14:13963parcourir

Truffle: Testing Smart Contracts

truffe: un outil puissant pour une automatisation efficace du développement de contrats intelligents.

Les tests de contrat intelligents sont le lien central du développement de contrats intelligents de haute qualité. Pourquoi devons-nous prêter autant d'attention aux tests? Parce que les contrats intelligents traitent de la valeur, parfois une valeur énorme, cela les rend ciblés par les attaquants. Vous ne voulez pas voir votre projet finalement devenir un "fantôme" dans le cimetière de la blockchain, non?

Points clés:

  • La truffe est un outil incontournable pour la compilation automatisée, les tests et le déploiement de contrats intelligents, assurant un développement efficace de la blockchain.
  • Étant donné que les contrats intelligents gèrent les transactions de grande valeur et sont facilement ciblés, il est crucial de tester les contrats intelligents avec la truffe.
  • Facile à construire un réseau de test de développement local à l'aide de Ganache-CLI (anciennement connu sous le nom de TestRPC), qui fournit des comptes d'éther préchargés pour des tests rentables pratiques.
  • truffes prend en charge la rédaction de tests de contrat intelligent à l'aide de Solidity et JavaScript, offrant une flexibilité basée sur les préférences de programmation des développeurs et la complexité des tests.
  • truffes a un débogueur intégré qui permet aux développeurs de parcourir le code et de vérifier les variables pour résoudre efficacement les problèmes.

débutant:

Nous créerons un marché de marchandises d'occasion basé sur des contrats intelligents simples appelée Hashmarket .

Dans le terminal, localisez le dossier où vous souhaitez construire le projet. Dans ce dossier, exécutez la commande suivante:

<code class="language-bash">mkdir HashMarket
cd HashMarket
truffle init</code>

Vous devriez voir la sortie similaire à ce qui suit:

<code>Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!

Commands:

  Compile:        truffle compile
  Migrate:        truffle migrate
  Test contracts: truffle test</code>

Vous obtiendrez également la structure du fichier comme indiqué ci-dessous:

<code>.
├── contracts
│   └── Migrations.sol
├── migrations
│   └── 1_initial_migration.js
├── test
├── truffle-config.js
└── truffle.js</code>

Pour ces documents, veuillez vous référer à l'article précédent. En bref, nous avons les fichiers de base truffle.js ainsi que deux fichiers pour la migration initiale de la blockchain.

Préparez-vous à l'environnement de test

La façon la plus simple de tester est de le faire sur le réseau local. Il est fortement recommandé d'utiliser l'outil Ganache-CLI (anciennement connu sous le nom de TestRPC) pour les tests de contrat.

Installation de Ganache-Cli (nécessite un gestionnaire de package de nœuds):

<code class="language-bash">npm install -g ganache-cli</code>
Après

, ouvrez une fenêtre ou un onglet de terminal séparé et exécuter:

<code class="language-bash">ganache-cli</code>

Vous devriez voir la sortie similaire à ce qui suit:

<code>Ganache CLI v6.1.0 (ganache-core: 2.1.0)

... (账户和私钥信息) ...

Listening on localhost:8545</code>

Il s'agit d'une liste de tous les comptes que Ganache-Cli crée pour vous. Vous pouvez utiliser n'importe quel compte que vous souhaitez, mais ceux-ci préchargeront l'éther, ce qui les rend très utiles (car le test nécessite de l'éther pour payer les frais de gaz).

Après

, accédez à votre fichier truffle.js ou truffle-config.js et ajoutez un réseau de développement à votre configuration:

<code class="language-javascript">module.exports = {
    networks: {
      development: {
        host: "127.0.0.1",
        port: 8545,
        network_id: "*"
      }
    }
};</code>

Écriture de contrats intelligents

Tout d'abord, nous rédigerons un contrat intelligent Hashmarket. Nous essaierons de rester simple tout en conservant les fonctionnalités requises.

Hashmarket est eBay sur la blockchain. Il permet aux vendeurs de publier des produits et des acheteurs pour acheter des produits à l'aide d'Ether. Il permet également aux vendeurs de retirer le produit lorsqu'il n'est pas vendu.

Dans le dossier contracts du projet, créez un nouveau fichier et nommez-le HashMarket.sol. Dans ce fichier, ajoutez le code suivant: (le même code contractuel que le texte d'origine est omis ici pour éviter la duplication)

Écriture d'un fichier de migration

Vous devez rédiger un fichier de migration qui permet à la truffle de savoir comment déployer votre contrat vers la blockchain. Accédez au dossier migrations et créez un nouveau fichier nommé 2_deploy_contracts.js. Dans ce fichier, ajoutez le code suivant: (le même code de fichier de migration que le texte d'origine est omis ici pour éviter la duplication)

tester les contrats intelligents

Vous pouvez utiliser Solidity ou JavaScript pour effectuer des tests de contrat intelligents. La solidité peut être un peu plus intuitive lors du test des contrats intelligents, mais JavaScript offre plus de possibilités.

Test de solidité

Pour démarrer le test, dans le dossier test du projet, créez un fichier nommé TestHashMarket.sol. (Les codes de test de solidité qui sont les mêmes que le texte d'origine sont omis ici pour éviter la duplication)

Test JavaScript

truffes nous permet d'utiliser JavaScript pour les tests, en tirant parti du framework de test Mocha. (Le même code de test JavaScript que le texte d'origine est omis ici pour éviter la duplication)

FAQ (FAQ) sur l'utilisation de la truffe pour tester les contrats intelligents: (la même section FAQ que le texte d'origine est omis ici pour éviter la duplication)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn