Maison >Périphériques technologiques >Industrie informatique >Truffe: tester les contrats intelligents
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:
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.
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>
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)
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)
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.
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)
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!