ETH智能合約測試


ETH的智能合約一般用Solidity語言編寫,懂點基本solidity語法會更好地測試

測試中需要用到的工具:

下圖為remix在線IDE的頁面:

測試合約的三個步驟:

1.編譯合約代碼 (需要翻牆)

  • 開發智能合約,一般使用Truffle框架,合約寫好后的目錄結構如下。其中,contracts目錄放的就是合約文件!

  • 下圖是contracts目錄下的文件。

  • 如果不在本地測試,而是想在remix上測試。除了“Migrations.sol”,其他文件內容,全部復制粘貼到Remix上。

  • 然后就可以選擇編譯器版本,開始編譯了。編譯后,沒有紅色的異常提示!說明編譯成功,可以開始測試了!

2.合約初始化

  • 先登錄metamask錢包,因為初始化合約,需要一個有ETH余額的地址!用來消耗gas!
  • 看個例子:
/*關鍵字:contract表明這是個合約*/
contract JtakToken is StandardToken {

  string public constant name = "Just Test And Known";
  string public constant symbol = "JTAK";
  uint8 public constant decimals = 18;
  uint256 public constant INITIAL_SUPPLY = 1000000000 * (10 ** uint256(decimals));
  
  /**
  * contract里面的關鍵字:constructor,表明這是合約的初始化方法!"_master"是一個地址類型的初始化參數!
  */
  constructor(address _master) public {
   require(_master != address(0));
   totalSupply_ = INITIAL_SUPPLY;
   master = _master;
   paused = false;
   coinbase = msg.sender;
   balances[coinbase] = INITIAL_SUPPLY;
   }
}
  • 開始部署合約,點擊deploy!

  • 此時metamask,就讓你支付手續費了,直接確認!

  • 幾秒之后,部署成功,然后就可以愉快地調用合約方法了!

3.調用合約方法。

所謂的智能合約測試,說白了!就是合約方法的測試!

  • 展開合約,可以看到該合約的所有方法!

  • 紅色表示是寫入鏈上的方法,需要消耗手續費!藍色表示是查詢的方法,不需要消耗手續費!

  • 讓我們通過調用合約方法,轉一筆賬,就清楚了!

  • 若手動調用方法測試覺得太麻煩,ETH框架Truffle可以用來做做單元測試!

一般的測試要點:

  • 合約初始化后,Token總量、名稱、小數位、分發比例、分發前后的余額等等。

  • 合約方法是否調用SafeMath做運算。(防止上溢、下溢等運算問題)

  • 合約方法的調用權限控制。

  • 高級點的合約,可能還有鎖倉、定時分發功能。這些具體業務,具體分析。不展開了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM