Smart Contract Testing
2 min readJul 11, 2017
軟體工程中,最重要的事情之一就是測試所撰寫出來的程式碼是否符合原本設定的需求。而程式碼中是否有包含潛在不可預期的錯誤,這些都是需要透過全面性的測試來達成,尤其是Ethereum區塊鏈的智能合約一旦部署上去區塊鏈之後是無法再次上版進行更新,所以在正式部署到Ethereum main net之前需要經過全面性的測試。
以下為常用的智能合約測試工具:
Ethereumjs-testrpc
testrpc 是在 localhost 模擬 Ethereum 運行環境的工具,對於開發來說非常方便,將智能合約部署在模擬的環境中測試,並且調用每一個 funciton。
參考網址:https://www.npmjs.com/package/ethereumjs-testrpc
Truffle
Truffle 是輔助智能合約編譯、部署、測試的 framework,搭配 testrpc 可以在 localhost 完整模擬 Ethereum 區塊鏈上的所有操作流程。
參考網址:http://truffleframework.com/
Solidity-coverage
計算 test cases 程式碼的覆蓋程度,提供貼心的介面化功能,可以從介面上得知該 function 被測試了多少次,並且哪些程式碼沒有被測試到。