Truffle 进行智能合约测试

其他依赖

node.js、

由于是利用npm进行,所以先设置国内镜像源。去网上搜

1.安装truffle

npm install truffle -g

truffle --version
安装完其他项目依赖,能够产生一下效果

2.项目创建

创建test文件夹
mkdir test

进入test
cd test

初始化项目
truffle init

contracts: 编写以及存放智能合约的文件夹

migrations:使用solidity编写智能合约的文件夹,编写文件解释truffle 如何部署智能合约,用的是node.js

test: 用来写测试文件,大多数使用的是node.js,也有一些使用的是Solidity

truffle-config.js: 配置文件用来定义智能合约部署的网络

3.编辑合约

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <=0.9.0; //请注意solidity的版本问题,如果合约指定的版本和当前Solidity不兼容的话,这将会在编译的时候出错

contract Test {
    uint data;

    function updateData(uint _data) external {
        data = _data;
    }

    function readData() external view returns (uint) {
        return data;
    }
}

4.编译合约

        

5.部署合约

ganache可以独立安装,但是当安装了truffle时,也会自动安装ganache,编写、测试好的智能合约可以部署到私有链或以太坊测试网络。

 1. 编写test_deploy.js 迁移文件


const Test = artifacts.require("Test");

module.exports = function (deployer) {
    deployer.deploy(Test);
};
2. 编辑truffle-config.js文件

这个对应Ganache的配置。

3. 部署合约
truffle migrate

 6.合约测试

会重新编译和部署

const Test = artifacts.require('Test');

contract('Test', () => {
    it('Should update data', async () => {
        const newTest = await Test.new();
        await newTest.updateData(10);
        const data = await newTest.readData();
        assert(data.toString() === '10',"failed!");
    });
});

猜你喜欢

转载自blog.csdn.net/Qhx20040819/article/details/131897769
今日推荐