blockchain | 使用truffle测试合约
blockchain | 使用truffle测试合约
使用truffle test功能对之前的合约进行测试
参考:https://www.qikegu.com/docs/4816
本质上的过程还是部署到测试链子上,然后进行一系列操作。
如果要临时环境还可以用truffle develop进行创建:https://learnblockchain.cn/docs/truffle/quickstart.html#testing
测试代码如下【教程中的代码少了await,可能会失败】:
// 首先,`require`合约并将其分配给一个变量`MyContract`
const MzContract = artifacts.require('./MzContract.sol');
// 调用“contract”函数,并在回调函数中编写所有测试
// 回调函数提供一个“accounts”变量,表示本地区块链上的所有帐户。
contract('MzContract', (accounts) => {
// 第1个测试:调用get()函数,检查返回值,测试合约中value初始值是否是: 'hello mz'
it('initializes with the correct value', async () => {
// 获取合约实例
const mzContract = await MzContract.deployed()
const value = await mzContract.get()
// 使用断言测试value的值
assert.equal(value, 'hello mz')
})
// 第2个测试: 调用set()函数来设置value值,然后调用get()函数来确保更新了值
it('can update the value', async () => {
const mzContract = await MzContract.deployed()
await mzContract.set('New Value'); // 这里异步需要等待,否则还没有进行交易就过去了。
const value = await mzContract.get()
assert.equal(value, 'New Value')
})
})
测试通过:
本文来自博客园,作者:Mz1,转载请注明原文链接:https://www.cnblogs.com/Mz1-rc/p/17291582.html
如果有问题可以在下方评论或者email:mzi_mzi@163.com