Rumah >Peranti teknologi >industri IT >Truffle: Menguji Kontrak Pintar
Ujian kontrak pintar adalah pautan teras pembangunan kontrak pintar berkualiti tinggi. Mengapa kita perlu memberi perhatian yang begitu banyak kepada ujian? Kerana kontrak pintar berurusan dengan nilai, kadang -kadang nilai yang besar, ini menjadikan mereka disasarkan oleh penyerang. Anda tidak mahu melihat projek anda akhirnya menjadi "hantu" di tanah perkuburan blockchain, bukan?
Mata utama:
pemula:
kami akan membuat pasaran barangan terpakai berasaskan kontrak pintar yang dipanggilHASHMarket .
Di terminal, cari folder di mana anda ingin membina projek. Dalam folder ini, jalankan arahan berikut:
<code class="language-bash">mkdir HashMarket cd HashMarket truffle init</code>anda harus melihat output yang serupa dengan yang berikut:
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>anda juga akan mendapat struktur fail seperti yang ditunjukkan di bawah:
<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>Untuk dokumen ini, sila rujuk artikel sebelumnya. Ringkasnya, kami mempunyai fail
truffle.js
bersiap sedia untuk persekitaran ujian
Memasang Ganache-CLI (Memerlukan Pengurus Pakej Node):
Selepas
, buka tetingkap atau tab terminal yang berasingan dan jalankan:<code class="language-bash">npm install -g ganache-cli</code>
anda harus melihat output yang serupa dengan yang berikut:
<code class="language-bash">ganache-cli</code>
Ini adalah senarai semua akaun yang dibuat oleh Ganache-CLI untuk anda. Anda boleh menggunakan apa -apa akaun yang anda mahu, tetapi ini akan pramuat eter, yang menjadikannya sangat berguna (kerana ujian memerlukan eter membayar yuran gas).
<code>Ganache CLI v6.1.0 (ganache-core: 2.1.0) ... (账户和私钥信息) ... Listening on localhost:8545</code>Selepas
, pergi ke fail
atau anda dan tambahkan rangkaian pembangunan ke konfigurasi anda: truffle.js
truffle-config.js
<code class="language-javascript">module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*" } } };</code>
Hashmarket adalah eBay di blok block. Ia membolehkan penjual menerbitkan produk dan pembeli untuk membeli produk menggunakan Ether. Ia juga membolehkan penjual mengeluarkan produk apabila ia tidak dijual.
Dalam folder contracts
dalam projek, buat fail baru dan namakannya HashMarket.sol
. Dalam fail ini, tambahkan kod berikut: (kod kontrak yang sama seperti teks asal ditinggalkan di sini untuk mengelakkan pertindihan)
Anda perlu menulis fail penghijrahan yang membolehkan Truffle tahu bagaimana untuk menggunakan kontrak anda ke blockchain. Pergi ke folder migrations
dan buat fail baru bernama 2_deploy_contracts.js
. Dalam fail ini, tambahkan kod berikut: (kod fail penghijrahan yang sama seperti teks asal ditinggalkan di sini untuk mengelakkan pertindihan)
Anda boleh menggunakan Solidity atau JavaScript untuk melakukan ujian kontrak pintar. Solidity mungkin sedikit lebih intuitif apabila menguji kontrak pintar, tetapi JavaScript menawarkan lebih banyak kemungkinan.
Untuk memulakan ujian, dalam folder test
dalam projek, buat fail bernama TestHashMarket.sol
. (Kod ujian solidity yang sama dengan teks asal ditinggalkan di sini untuk mengelakkan pertindihan)
Truffle membolehkan kami menggunakan JavaScript untuk ujian, memanfaatkan rangka kerja ujian mocha. (Kod ujian JavaScript yang sama seperti teks asal ditinggalkan di sini untuk mengelakkan pertindihan)
FAQs (FAQs) Mengenai Menggunakan Truffle Untuk Menguji Kontrak Pintar: (Seksyen Soalan Lazim yang sama seperti teks asal ditinggalkan di sini untuk mengelakkan pertindihan)
Atas ialah kandungan terperinci Truffle: Menguji Kontrak Pintar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!