Akıllı Sözleşmeleri Test Etme

Dec 22 2022
Akıllı sözleşmeler nasıl test edilir ve neden yapılır? Web3 çözümleriniz için akıllı sözleşmeler geliştirmenin en temel adımı, onu testnet'e dağıtmadan önce test etmektir. Uygulanan özelliği kontrol eden testler yapmak çok önemlidir! Gündem: “Akıllı sözleşme testi, geliştirme döngüsü sırasında kaynak kodunun kalitesini değerlendirmek için bir akıllı sözleşmenin ayrıntılı analizini ve değerlendirmesini yapmak anlamına gelir.

Akıllı sözleşmeler nasıl test edilir ve neden yapılır?

Web3 çözümleriniz için akıllı sözleşmeler geliştirmenin en temel adımı, onu testnet'e dağıtmadan önce test etmektir. Uygulanan özelliği kontrol eden testler yapmak çok önemlidir!

Gündem:

  • giriş,
  • o nedir?
  • bu ne yapar?
  • araçlar,
  • çözüm.

"Akıllı sözleşme testi, geliştirme döngüsü sırasında kaynak kodunun kalitesini değerlendirmek için bir akıllı sözleşmenin ayrıntılı analizini ve değerlendirmesini yapmak anlamına gelir."

Basit ve pratik bir ifadeyle: test etme, özellikleri kullanmanın basit varyantlarını yazmak ve sonuçların önceden tanımlanmış ifadelere eşit olmasını beklemektir.

Basit bir örnek, akıllı sözleşme, belirteçleri adresten adrese aktarıyor ve hepsi bu.

Bunun gibi bir test yazmak için gereklidir:

  • iki cüzdan oluşturun (örneğin Alice & Bob),
  • 1 ETH'ye eşit varlıklarla Alice'ten bob'a transfer işlevini çalıştırın,
  • Bob cüzdanının değerini 1 ETH artırmasını beklemek,
  • Alice cüzdanının 1 ETH düşmesini beklemek,
  • sahip olduğu daha fazla fonu transfer etme denemesi gibi uç vakaların düzgün bir şekilde ele alınıp alınmadığını kontrol edin.

Bu ne yapar?

"Akıllı bir sözleşmeyi test etmek, hataları ve güvenlik açıklarını belirlemeyi kolaylaştırıyor ve maliyetli açıklardan yararlanmaya yol açabilecek yazılım hataları olasılığını azaltıyor."

Alice ve Bob ile yukarıdaki örneğe göre test, daha fazla konuşlandırmadan önce uygulanan özellikleri kontrol eder. Hatalar için hatalar atmalı ve testler doğru bir şekilde açıklanırsa kolayca tespit edilmelerine izin vermelidirler.

tanım kaynakları:

Araçlar

Akıllı sözleşmeler esas olarak Solidity'de yazılır, ancak test JavaScript ile yapılır. Farklı platformlar, çözümler test için bazı kolay mimariler sunar, bunlardan biri trüf mantarıdır.

Yer mantarı hakkında daha fazlası:

Truffle, kısaca her proje için aynı olan uygun bir klasör yapısı oluşturur:

  • sözleşmelerin saklandığı bir sözleşme klasörü var,
  • ve testleri saklayan testler klasörü var.

mocha.js:

chai.js belgeleri:

Test dosyasında sözleşmeler başlatılır ve ardından farklı koşullar kontrol edilir.

Testler terminal seviyesinden cli komutu ile çalıştırılır ve hepsi bu kadar.

Sözleşmenin yerel olarak dağıtılması ve oluşturulan cüzdanların bir miktar fonla uygulanması için trüf araç setinden ganache son derece yararlıdır. Sadece bir loca blok zinciri çalıştırır ve 100ETH bakiyesi ile cüzdanlar oluşturur.

Ganaj hakkında daha fazlası:

Gözleme

ETHWorks tarafından oluşturulan başka bir akıllı sözleşme test aracıdır.

"Yeni akıllı sözleşmeler oluşturmanıza ve bunları Mocha ve Chai kullanarak test etmenize olanak tanıyor. Birçok kişi, daha basit ve öğrenmesi daha kolay olduğu için Truffle yerine Waffle'ı tercih ediyor.”

Daha:

Çözüm

Akıllı sözleşmeleri test etmek, büyük miktarda varlık kaybını önleyebilen güçlü ve gerçekten gerekli bir beceridir. Blockchain sabittir, eğer sözleşme hatalarla dağıtılırsa, şanslı senaryoda sadece bazı özelliklerini kaybeder. En kötü durum, bazı kullanıcıların para kaybetmesidir.

Beğendin mi? Meydan okumadaki tüm konuları içeren repoyu takip edin: