TRUFFE: Ein leistungsstarkes Tool für die effiziente Automatisierung der intelligenten Vertragsentwicklung.
Smart Contract Testing ist der Kernverbindung der hochwertigen Smart Contract-Entwicklung. Warum müssen wir den Tests so viel Aufmerksamkeit schenken? Da intelligente Verträge mit Wert und manchmal großem Wert umgehen, macht sie sie von Angreifern ins Visier genommen. Sie möchten nicht, dass Ihr Projekt auf dem Blockchain -Friedhof irgendwann zu einem "Geist" wird, oder?
Schlüsselpunkte:
Anfänger:
Wir werden einen einfachen, intelligenten kontraktbasierten Second-Hand-Warenmarkt namens Hashmarket erstellen.
Suchen Sie im Terminal den Ordner, in dem Sie das Projekt erstellen möchten. Führen Sie in diesem Ordner den folgenden Befehl aus:
mkdir HashMarket cd HashMarket truffle init
Sie sollten die Ausgabe ähnlich wie folgt sehen:
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>
Sie erhalten auch die Dateistruktur wie unten gezeigt:
<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>
Informationen zu diesen Dokumenten finden Sie im vorherigen Artikel. Kurz gesagt, wir haben die grundlegenden truffle.js
-Fateien sowie zwei Dateien für die erste Blockchain -Migration.
Der einfachste Weg zum Testen besteht darin, dies im lokalen Netzwerk zu tun. Es wird dringend empfohlen, das Ganache-Cli-Tool (früher als TestRPC) für Vertragstests zu verwenden.
Ganache-cli installieren (benötigt Node Package Manager):
npm install -g ganache-cli
ein separates Terminalfenster oder eine separate Registerkarte und führen Sie aus:
ganache-cli
Sie sollten die Ausgabe ähnlich wie folgt sehen:
<code>Ganache CLI v6.1.0 (ganache-core: 2.1.0) ... (账户和私钥信息) ... Listening on localhost:8545</code>
Dies ist eine Liste aller Konten, die Ganache-Cli für Sie erstellt. Sie können jedes gewünschte Konto verwenden, aber diese werden Ether aufladen, was sie sehr nützlich macht (da der Test für die Bezahlung von Gasgebühren für den Test erforderlich ist).
Nach gehen Sie zu Ihrer Datei truffle.js
oder truffle-config.js
und fügen Sie Ihrer Konfiguration ein Entwicklungsnetzwerk hinzu:
module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" } } };
Hashmarket ist eBay auf der Blockchain. Es ermöglicht Verkäufern, Produkte und Käufer zu veröffentlichen, um Produkte mit Äther zu kaufen. Es ermöglicht den Verkäufern auch, das Produkt zu entfernen, wenn es nicht verkauft wird.
im Ordner contracts
im Projekt erstellen Sie eine neue Datei und nennen Sie es HashMarket.sol
. Fügen Sie in dieser Datei den folgenden Code hinzu: (Der gleiche Vertragscode wie der Originaltext wird hier weggelassen, um Duplizierung zu vermeiden)
Sie müssen eine Migrationsdatei schreiben, mit der Trüffel wissen, wie Sie Ihren Vertrag in der Blockchain bereitstellen. Gehen Sie zum Ordner migrations
und erstellen Sie eine neue Datei mit dem Namen 2_deploy_contracts.js
. Fügen Sie in dieser Datei den folgenden Code hinzu: (der gleiche Migrationsdateicode wie der Originaltext ist hier weggelassen, um die Duplikation zu vermeiden)
Sie können Solidität oder JavaScript verwenden, um Smart -Contract -Tests durchzuführen. Solidität kann beim Testen intelligenter Verträge etwas intuitiver sein, aber JavaScript bietet mehr Möglichkeiten.
Erstellen Sie im Ordner test
im Projekt eine Datei mit dem Namen TestHashMarket.sol
. (Die Codes für Soliditätstests, die mit dem ursprünglichen Text ausgehen, werden hier weggelassen, um die Duplikation zu vermeiden.)
TRUFFE ermöglicht es uns, JavaScript zum Testen zu verwenden und das Mokka -Test -Framework zu nutzen. (Der gleiche JavaScript -Testcode wie der Originaltext wird hier weggelassen, um Duplikation zu vermeiden)
FAQs (FAQs) zur Verwendung von TRUFFL zum Testen intelligenter Verträge: (der gleiche FAQ
Das obige ist der detaillierte Inhalt vonTrüffel: Testen intelligenten Verträgen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!