Truffle 智能合約測試及單元測試
測試主要指標:
1.合約交易 Gas 消耗量測試
2.合約運行時間測試
這裏一共有兩個合約,網上找的,內容如下:
pragma solidity >=0.4.21 <0.7.0;
contract Counter {
uint public count = 10;
function inc(uint num) public returns (uint){
return count += num;
}
}
pragma solidity >=0.4.21 <0.7.0;
import "./Counter.sol";
contract Callcounter {
uint public count = 20;
function CallByAddr(address addr) public returns (uint){
return Counter(addr).inc(2);
}
}
編譯這兩個智能合約
truffle compile
啓動區塊鏈模擬端:
ganache-cli
部署智能合約到區塊鏈上:
truffle migrate
以上,即爲編譯,部署智能合約的全部內容,接着我們進行實際的測試;
####測試
step1: 部署這兩個智能合約
我們記錄下這個兩個合約的地址:
Counter:0x22588CcC33cB983636F66C05C6F35a715e30a94E
Callcounter:0xd41EdE4E838F0CB98a48F6bF0510CFeBAd4f53B2
編寫測試JS腳本:
const Counter = artifacts.require("Counter");
const Callcounter = artifacts.require("Callcounter");
contract("Countesr", accounts => {
it("Get Instance !",async()=>{ });
it("Call function",async()=>{
//const instance1 = await Counter.at('0x22588CcC33cB983636F66C05C6F35a715e30a94E');
const instance2 = await Callcounter.at('0xd41EdE4E838F0CB98a48F6bF0510CFeBAd4f53B2');
const res = await instance2.CallByAddr('0x22588CcC33cB983636F66C05C6F35a715e30a94E');
});
});
執行結果如下: