iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
自我挑戰組

區塊鏈 Blockchain系列 第 28

D28 DApp實作(List Candidates)3

  • 分享至 

  • xImage
  •  

現在讓我們編寫一些測試來確保智能合約被正確初始化。
解釋一下為什麼在開發智能合約時測試如此重要。確保合約沒有錯誤

  1. 以太坊區塊鏈上的所有代碼都是不可變的;它不能改變。如果合約包含任何錯誤,我們必須禁用它並部署一個新副本。這個新副本不會和舊合約有相同的狀態,並且會有不同的地址。

  2. 部署合約需要消耗 gas,因為它會創建交易並將數據寫入區塊鏈。這需要 Ether,我們希望盡量減少我們必須支付的 Ether 數量。

  3. 如果我們寫入區塊鏈的任何合約函數包含錯誤,調用此函數的帳戶可能會浪費 Ether,並且它可能不會按照他們預期的方式運行。


為了後面的測試,需要安裝:

Mocha
https://mochajs.org/

Mocha 是一個功能豐富的 JavaScript 測試框架,運行在Node.js和瀏覽器中,讓異步測試變得簡單有趣。Mocha 測試連續運行,允許靈活準確的報告,同時將未捕獲的異常映射到正確的測試用例。託管在GitHub 上。

https://ithelp.ithome.com.tw/upload/images/20221017/20152174H3mSYR57DK.png

https://ithelp.ithome.com.tw/upload/images/20221017/20152174wvVG11GXWh.png


Chai Assertion Library
https://www.chaijs.com/
Chai 是一個 BDD / TDD 斷言庫,適用於節點和瀏覽器,可以與任何 javascript 測試框架完美搭配。

https://ithelp.ithome.com.tw/upload/images/20221017/201521741gjIQ45bc6.png

這兩個為我們提供需要的測試,為我們的智能合約寫程式


今天先到這,明天再繼續!


上一篇
D27 DApp實作(List Candidates)2
下一篇
D29 DApp實作(List Candidates)4
系列文
區塊鏈 Blockchain30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言