-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Wie benutze ich Hardhat, um einen intelligenten Vertrag zu testen?
Hardhat is an Ethereum development environment that streamlines smart contract testing with tools like Mocha and Chai, ensuring reliable deployment.
Jul 26, 2025 at 11:15 pm
Was ist Hardhat und warum für intelligente Vertragsprüfungen verwenden?
Hardhat ist eine Ethereum -Entwicklungsumgebung, in der Entwickler intelligente Verträge effizient zusammenstellen, bereitstellen, debuggen und testen können. Es bietet eine lokale Blockchain -Umgebung, die als Hardhat -Netzwerk bezeichnet wird und das Verhalten realer Ethereum -Netzwerke wie Mainnet oder Ropsten nachahmt und es für Testzwecke ideal macht.
Einer der Hauptgründe, warum Entwickler Hardhat bevorzugen, ist seine Flexibilität und das reichhaltige Plugin -Ökosystem. Egal, ob Sie Unit-Tests mit Mokka schreiben, Chai für Behauptungen verwenden oder mit integrierten Tools debuggen, Hardhat rationalisiert den gesamten Lebenszyklus für die Vertragsentwicklung. Dies macht es besonders nützlich, wenn Sie sicherstellen möchten, dass sich Ihre Vertragslogik korrekt verhält, bevor Sie sie in einem Live -Netzwerk bereitstellen.
Einrichten Ihrer Entwicklungsumgebung
Vor dem Testen ist es wichtig, eine ordnungsgemäße Umgebung einzurichten:
- Installieren Sie node.js : Stellen Sie sicher, dass Node.js (Version 14.x oder höher) und NPM installiert sind.
- Initialisieren Sie ein Projekt : Führen Sie
npm init -yin Ihrem Projektverzeichnis aus, um einepackage.json-Datei zu erstellen. - Installieren Sie HardHat : Führen Sie
npm install --save-dev hardhataus, um Ihrem Projekt Hardhat hinzuzufügen. - HardHat -Konfigurationsdatei erstellen : Führen Sie
npx hardhataus und wählen Sie 'ein JavaScript -Projekt erstellen', um die Dateihardhat.config.jszu generieren.
Sobald dieses Setup abgeschlossen ist, können Sie mit dem Schreiben und Testen Ihrer intelligenten Verträge beginnen.
Schreiben eines grundlegenden intelligenten Vertrags zum Testen
Um zu demonstrieren, wie Hardhat zum Testen verwendet werden kann, betrachten wir einen einfachen Soliditätsvertrag :
// contracts/Token.sol pragma solidity ^0.8.0;Vertrags -Token {mapping(address => uint256) public balances; function transfer(address to, uint256 amount) external { require(balances[msg.sender] >= amount, 'Insufficient balance'); balances[msg.sender] -= amount; balances[to] += amount; } function mint(address account, uint256 amount) external { balances[account] += amount; }}
Dieser grundlegende Token -Vertrag enthält Funktionen für die Übertragung und Münzen von Token. Ziel ist es zu testen, ob sich diese Funktionen unter verschiedenen Szenarien unter Verwendung von Hardhats Test -Framework wie erwartet verhalten.
Konfigurieren der Testumgebung
Stellen Sie vor dem Schreiben von Tests sicher, dass Ihre Projektstruktur Tests unterstützt:
- Platzieren Sie Ihre Soliditätsverträge in den
contracts/den Ordner. - Speichern Sie Testdateien im
test/Verzeichnis. - Aktualisieren Sie bei Bedarf
hardhat.config.js(z. B. Hinzufügen von Netzwerken oder Plugins).
Hier ist ein minimales Konfigurationsbeispiel:
// hardhat.config.js module.exports = { solidity: '0.8.0', };Mit diesem Setup können Sie mit Mokka und Chai Tests schreiben und durchführen.
Schreiben von Tests mit Mocha und Chai
Hardhat integriert nahtlos in Mokka , ein beliebtes JavaScript -Test -Framework, und Chai , eine Assertion -Bibliothek.
Erstellen Sie zunächst eine Testdatei im test/ Verzeichnis:
// test/token-test.js const { expect } = require('chai');beschreiben ('Token -Vertrag', function () { token; lass hardhattoken; Eigentümer lassen; sei addr1;voran
Token = await ethers.getContractFactory('Token'); [owner, addr1] = await ethers.getSigners(); hardhatToken = await Token.deploy(); await hardhatToken.deployed();});
IT ("sollte die Gesamtversorgung dem Eigentümer zuweisen", Async Function () {
await hardhatToken.mint(owner.address, 100); const ownerBalance = await hardhatToken.balances(owner.address); expect(ownerBalance).to.equal(100);});
IT ("Sollte Token zwischen Konten überweisen", asynchrische Funktion () {
await hardhatToken.mint(owner.address, 100); await hardhatToken.transfer(addr1.address, 50); const addr1Balance = await hardhatToken.balances(addr1.address); expect(addr1Balance).to.equal(50);});
IT ("sollte fehlschlagen, wenn der Absender nicht genug Token hat", asynchrische Funktion () {
const initialOwnerBalance = await hardhatToken.balances(owner.address); await expect( hardhatToken.transfer(addr1.address, 1) ).to.be.revertedWith('Insufficient balance'); expect(await hardhatToken.balances(owner.address)).to.equal(initialOwnerBalance);}); });
In jedem Testfall wird Chai verwendet, um die erwarteten Ergebnisse zu gründen. Der beforeEach -Haken sorgt für einen neuen Einsatz für jeden Test, wodurch eine Störung zwischen Testfällen verhindert wird.
Ausführen von Tests mit Hardhat
Sobald Ihre Tests geschrieben sind, ist die Ausführung unkompliziert:
- Öffnen Sie ein Terminal in Ihrem Projekt Root Directory.
- Führen Sie den Befehl
npx hardhat testaus.
Die Ausgabe zeigt die Ergebnisse jedes Tests, einschließlich bestandener und fehlgeschlagener Fälle. Wenn ein Test fehlschlägt, zeigt Hardhat detaillierte Fehlermeldungen an, um Probleme schnell zu identifizieren.
Für eine stärkere Kontrolle können Sie bestimmte Testdateien ausführen, indem Sie den Dateipfad anhängen:
npx hardhat test test/token-test.jsAuf diese Weise können Sie sich auf bestimmte Vertragsverhalten konzentrieren, ohne die gesamte Testsuite neu zu beenden.
Häufig gestellte Fragen
F: Kann ich Hardhat ohne Solidität verwenden? Ja, während Hardhat hauptsächlich für Solidität ausgelegt ist, kann es auch mit anderen EVM-kompatiblen Sprachen wie Vyper verwendet werden, obwohl die Unterstützung der Community möglicherweise variieren kann.
F: Wie debugge ich fehlgeschlagene Tests in Hardhat? Verwenden Sie Console.log von @nomiclabs/Hardhat-Waffle oder der Hardhat Runtime Environment (HRE), um während der Testausführung Variablenwerte zu drucken. Überprüfen Sie außerdem die Transaktionsbelege und kehren Sie die im Testausgang angegebenen Gründe zurück.
F: Kann ich Vertrags -Upgrades mit Hardhat testen? Ja, Hardhat unterstützt Proxy-Muster über Plugins wie @Openzeppelin/Hardhat-Upgrades , sodass Sie auf aktualisierbare Verträge lokal simulieren und testen können.
F: Gibt es Alternativen zu Mokka und Chai zum Testen in Hardhat? Während Mokka und Chai weit verbreitet sind, können Sie andere Test -Frameworks wie Scherz in die zusätzliche Konfiguration integrieren, obwohl die native Unterstützung und Dokumentation für Mokka und Chai reifer sind.
Haftungsausschluss:info@kdj.com
Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!
Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.
-
RAIN Jetzt handeln$0.007852
113.00%
-
PIPPIN Jetzt handeln$0.06097
51.96%
-
PARTI Jetzt handeln$0.1396
42.04%
-
WAVES Jetzt handeln$0.9141
41.69%
-
ARC Jetzt handeln$0.04302
35.73%
-
HONEY Jetzt handeln$0.01029
21.80%
- Bitcoin, eCash Fork und Airdrop Dynamics: Ein tiefer Einblick in die neuesten Kontroversen im Kryptobereich
- 2026-05-03 12:55:01
- Konsens 2026 Miami: Web3, Blockchain, Kryptowährung, NFTs, Metaverse, Konferenz, 5. Mai – Wo die Wall Street auf die digitale Grenze trifft
- 2026-05-02 12:45:01
- Die Fed hält die Zinsen stabil, was inmitten geopolitischer Spannungen einen Bitcoin-Preisverfall auslöst
- 2026-05-01 06:45:01
- Bitcoin-Miner elektrifizieren das Netz: Der Erwerb eines Gaskraftwerks in Ohio läutet eine neue Ära für digitales Gold ein
- 2026-05-01 00:45:01
- Der MEGA-Token von MegaETH erreicht den Big Apple: Er setzt neue Leistungsmaßstäbe für Echtzeit-Blockchain
- 2026-05-01 00:55:01
- Solanas rutschiger Abhang: Die Preisprognose deutet auf einen Widerstandsverlust und mögliche weitere Rückgänge hin
- 2026-05-01 06:45:01
Verwandtes Wissen
Wie kann man bei Bybit für den BTC-Handel zwischen linearen und inversen unbefristeten Verträgen wählen?
Jun 06,2026 at 02:54am
Vertragsabwicklungsmechanismen 1. Lineare unbefristete Verträge auf Bybit werden in USDT abgewickelt, was bedeutet, dass alle Gewinn- und Verlustberec...
Wie kann man Terminmarktmanipulationen wie Stoppjagden und Spoofing erkennen und vermeiden?
Jun 07,2026 at 02:20pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie richte ich Risikomanagementregeln auf Bybit ein, um meinen maximalen täglichen Verlust zu begrenzen?
Jun 04,2026 at 04:40pm
Konfiguration des Verlustlimits auf Kontoebene 1. Melden Sie sich per Web- oder Mobilanwendung mit Zwei-Faktor-Authentifizierung bei Ihrem Bybit-Konto...
Wie aktiviere ich den Portfolio-Margin-Modus auf Binance, um meine Margin-Anforderungen zu reduzieren?
Jun 05,2026 at 04:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie kann ich meine offenen Futures-Positionen von Binance zu Bybit migrieren, ohne sie zu schließen?
Jun 04,2026 at 03:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie geht man mit den steuerlichen Auswirkungen von Gewinnen aus dem Krypto-Futures-Handel in den USA um?
May 29,2026 at 06:19pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt eine feste Angebotsobergrenze von 21 Millionen Münzen, wobei neue Einheiten durch Bl...
Wie kann man bei Bybit für den BTC-Handel zwischen linearen und inversen unbefristeten Verträgen wählen?
Jun 06,2026 at 02:54am
Vertragsabwicklungsmechanismen 1. Lineare unbefristete Verträge auf Bybit werden in USDT abgewickelt, was bedeutet, dass alle Gewinn- und Verlustberec...
Wie kann man Terminmarktmanipulationen wie Stoppjagden und Spoofing erkennen und vermeiden?
Jun 07,2026 at 02:20pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie richte ich Risikomanagementregeln auf Bybit ein, um meinen maximalen täglichen Verlust zu begrenzen?
Jun 04,2026 at 04:40pm
Konfiguration des Verlustlimits auf Kontoebene 1. Melden Sie sich per Web- oder Mobilanwendung mit Zwei-Faktor-Authentifizierung bei Ihrem Bybit-Konto...
Wie aktiviere ich den Portfolio-Margin-Modus auf Binance, um meine Margin-Anforderungen zu reduzieren?
Jun 05,2026 at 04:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie kann ich meine offenen Futures-Positionen von Binance zu Bybit migrieren, ohne sie zu schließen?
Jun 04,2026 at 03:59am
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt einen festen Ausgabeplan, bei dem die Blockbelohnungen etwa alle 210.000 Blöcke halb...
Wie geht man mit den steuerlichen Auswirkungen von Gewinnen aus dem Krypto-Futures-Handel in den USA um?
May 29,2026 at 06:19pm
Bitcoin Halbierungsmechanik 1. Das Protokoll von Bitcoin erzwingt eine feste Angebotsobergrenze von 21 Millionen Münzen, wobei neue Einheiten durch Bl...
Alle Artikel ansehen














