
由于智能合约的不可更改性,在部署之前对其进行彻底的测试是至关重要的。在编写自动化测试时,开发人员有几个选择。
- Solidity测试
- Javascript/python/其他语言测试
通常情况下,用JavaScript和Solidity对合约进行两种方式的测试是很有用的,因为大多数dApp都会以这种方式与合约交互,你可以从这个示例测试仓库中看到。另一方面,当你测试一个主要使用点来自另一个链上合约的合约/库时,最应该使用Solidity。
很明显,为了更加测试更加全面,请同时使用这两种方法。如果你有一个简单的智能合约,比如:
pragma solidity >=0.5.0;
contract Background {
uint[] private values;
function storeValue(uint value) public {
values.push(value);
}
function getValue(uint initial) public view returns(uint) {
return values[initial];
}
function getNumberOfValues() public view returns(uint) {
return values.length;
}
}
编写一些Solidity测试非常简单,例如:
pragma solidity >=0.5.0;
import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../../../contracts/Background.sol";
contract TestBackground {
Background public background;
// Run before every test function
function beforeEach() public {
background = new Background();
}
// Test that it stores a value correctly
function testItStoresAValue(

本文强调智能合约部署前测试的重要性,介绍了Chainlink智能合约的测试方法。包括使用测试网、分叉链、Mocks模拟依赖关系以及借助助手部署等方式,还提及了不同测试方式适用的项目示例,指出集成测试对扩展dApp很关键。
最低0.47元/天 解锁文章
3596

被折叠的 条评论
为什么被折叠?



