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');
});
});
执行测试脚本:
Truffle test ./test/Test.js
执行结果如下: