Menguji Kontrak Cerdas

Dec 22 2022
Bagaimana cara menguji kontrak pintar, dan mengapa melakukannya? Langkah paling mendasar dalam mengembangkan kontrak pintar untuk solusi web3 Anda adalah mengujinya bahkan sebelum diterapkan ke testnet. Menjalankan tes yang memeriksa fitur yang diimplementasikan sangatlah penting! Agenda: “Pengujian kontrak pintar berarti melakukan analisis terperinci dan evaluasi kontrak pintar untuk menilai kualitas kode sumbernya selama siklus pengembangan.

Bagaimana cara menguji kontrak pintar, dan mengapa melakukannya?

Langkah paling mendasar dalam mengembangkan kontrak pintar untuk solusi web3 Anda adalah mengujinya bahkan sebelum diterapkan ke testnet. Menjalankan tes yang memeriksa fitur yang diimplementasikan sangatlah penting!

Jadwal acara:

  • pengantar,
  • apa itu?
  • apa fungsinya?
  • peralatan,
  • kesimpulan.

“Pengujian kontrak pintar berarti melakukan analisis terperinci dan evaluasi kontrak pintar untuk menilai kualitas kode sumbernya selama siklus pengembangan.”

Dengan kata sederhana dan praktis: pengujian adalah menulis varian sederhana menggunakan fitur dan mengharapkan hasil yang sama dengan pernyataan yang telah ditentukan sebelumnya.

Contoh sederhana, smart contract adalah mentransfer token dari alamat ke alamat dan itu saja.

Diperlukan untuk menulis tes seperti ini:

  • menghasilkan dua dompet (misalnya Alice & Bob),
  • jalankan fungsi transfer dari Alice ke bob dengan aset setara 1 ETH,
  • berharap dompet Bob meningkatkan nilainya sebesar 1 ETH,
  • berharap dompet Alice berkurang 1 ETH,
  • periksa apakah kasus tepi ditangani dengan benar, seperti mencoba mentransfer lebih banyak dana yang dimilikinya, dll.

Apa fungsinya?

“Menguji kontrak pintar memudahkan untuk mengidentifikasi bug dan kerentanan serta mengurangi kemungkinan kesalahan perangkat lunak yang dapat menyebabkan eksploitasi yang mahal.”

Menurut contoh di atas dengan Alice dan Bob, pengujian memeriksa fitur yang diimplementasikan sebelum penerapan lebih lanjut. Mereka harus membuang kesalahan untuk bug dan memungkinkan untuk mengidentifikasinya dengan mudah, jika tes dijelaskan dengan benar.

sumber definisi:

Peralatan

Kontrak pintar sebagian besar ditulis dalam Soliditas, tetapi pengujian dilanjutkan dengan JavaScript. Platform yang berbeda, solusi menawarkan beberapa arsitektur yang mudah untuk pengujian, salah satunya adalah truffle.

Lebih lanjut tentang truffle:

Truffle membuat struktur folder yang tepat yang sama untuk setiap proyek, segera:

  • ada folder kontrak tempat kontrak disimpan,
  • dan ada folder tes yang menyimpan tes.

moka.js:

dokumen chai.js:

Dalam kontrak file uji dimulai dan kemudian kondisi yang berbeda diperiksa.

Tes dijalankan dengan perintah cli dari level terminal dan itu saja.

Agar kontrak diterapkan secara lokal dan mengimplementasikan dompet yang dihasilkan dengan sejumlah dana, ganache dari perangkat truffle sangat membantu. Itu hanya menjalankan blockchain lokal dan membuat dompet dengan saldo 100ETH.

Lebih lanjut tentang ganache:

Omongan

Ini adalah alat pengujian kontrak pintar lain yang dibuat oleh ETHWorks.

“Ini memungkinkan Anda membuat kontrak pintar baru dan mengujinya menggunakan Mocha dan Chai. Banyak orang memilih Waffle daripada Truffle, karena lebih sederhana dan mudah dipelajari.”

Lebih banyak di:

Kesimpulan

Menguji kontrak pintar adalah keterampilan yang kuat dan sangat dibutuhkan, yang dapat mencegah hilangnya sejumlah besar aset. Blockchain tidak dapat diubah, jika kontrak digunakan dengan kesalahan, dalam skenario keberuntungan hanya kehilangan beberapa fitur. Kasus terburuk adalah ketika beberapa pengguna kehilangan dana.

Apakah kamu menyukainya? Ikuti repo dengan semua topik dari tantangan: