快速學習-以太坊編寫合約測試腳本

編寫合約測試腳本

我們已經實現了合約的編譯和部署的自動化,這將大大提升我們開發的效率。但流程的自動化並不能保證我們的代碼質量。質量意識是靠譜工程師的基本職業素養,在智能合約領域也不例外:任何代碼如果不做充分的測試,問題發現時通常都已爲時太晚;如果代碼不做自動化測試,問題發現的成本就會越來越高。

在編寫合約時,我們可以利用 remix 部署後的頁面調用合約函數,進行單元測試;還可以將合約部署到私鏈,用 geth 控制檯或者 node 命令行進行交互測試。但這有很大的隨意性,並不能形成標準化測試流程;而且手動一步步操作,比較繁瑣,不易保證重複一致。

於是我們想到,是否可以利用現成的前端技術棧實現合約的自動化測試呢?當然是可以的,mocha 就是這樣一個 JavaScript 測試框架。

安裝依賴

開始編寫測試腳本之前,我們首先需要安裝依賴:測試框架 mocha。當然,作爲對合約的測試,模擬節點 ganache 和 web3 都是不可缺少的;不過我們在上節課編寫部署腳本時,已經安裝了這些依賴(我們的 web3 依然是 1.0.0 版本)。npm install mocha –save-dev

進行單元測試,比較重要的一點是保證測試的獨立性和隔離性,所以我們並不需要測試網絡這種有複雜交互的環境,甚至不需要本地私鏈保存測試歷史。而ganache 基於內存模擬以太坊節點行爲,每次啓動都是一個乾淨的空白環境,所以非常適合我們做開發時的單元測試。還記得 ganache 的前身叫什麼嗎?就是大名鼎鼎的 testRPC。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章