【Truffle】二、自定义合约测试

这篇具有很好参考价值的文章主要介绍了【Truffle】二、自定义合约测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、准备测试

        上期我们自己安装部署了truffle,并且体验了测试用例的整个测试流程,实际开发中,我们可以对自己的合约进行测试。

        我们首先先明白自定义合约测试需要几个文件

  • 合约文件:既然要测试合约,肯定要有合约的源码文件,以.sol后缀结尾
  • 部署文件:测试合约要写一份部署文件,用于在测试中部署合约,以.js后缀结尾
  • 测试文件:测试合约的流程文件,用于对合约的方法流程进行测试,以.js后缀结尾

         合约文件的话,我们写一个最简单的合约用来测试,合约中定义了一个名为"number" 的无符号整数变量,通过调用 store() 函数,可以将一个无符号整数值存储到 "number" 变量中。然后,可以通过调用 retrieve() 函数来获取存储在 "number" 变量中的值。

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.8.2 <0.9.0;

/**
 * @title Storage
 * @dev Store & retrieve value in a variable
 * @custom:dev-run-script ./scripts/deploy_with_ethers.ts
 */
contract Storage {

    uint256 number;

    /**
     * @dev Store value in variable
     * @param num value to store
     */
    function store(uint256 num) public {
        number = num;
    }

    /**
     * @dev Return value 
     * @return value of 'number'
     */
    function retrieve() public view returns (uint256){
        return number;
    }
}

        我们把它存放到工作目录中的contracts目录下,命名为storage.sol

        部署文件,固定的格式,可以参考之前下载的测试用例修改一下即可

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

module.exports = function (deployer) {
  deployer.deploy(Storage);
};

        我们把它存放在migrations目录下,命名为1_deploy_contracts.js

        最后是测试文件,因为这个合约只有两个方法,所以我们两个方法都要进行测试,测试用例命名为Storage_test.js

var code = "60ca67ec-d345-407d-8df7-fa688e0bfd63"
const Storage = artifacts.require("Storage");

contract("Storage", (accounts) => {
  let storageInstance;

  before(async () => {
    storageInstance = await Storage.deployed();
  });

  it("should store a value", async () => {
    const newValue = 42;
    await storageInstance.store(newValue);
    const storedValue = await storageInstance.retrieve();
    assert.equal(storedValue, newValue, "Value was not stored correctly");
  });

  it("should retrieve the stored value", async () => { 
    const storedValue = await storageInstance.retrieve();
    assert.equal(storedValue, 42, "Stored value is incorrect");
  });
});

        最后的目录结构是这样的:

        【Truffle】二、自定义合约测试,Truffle ,区块链,智能合约,合约测试,truffle,测试工具,压力测试

二、开始测试: 

        和之前测试用例的测试方法一样,我们已经配置好了文件位置,现在可以开始测试啦

        测试流程为:truffle develop(启用测试网络) => compile(编译合约) => migrate(部署合约) => test(测试合约)

truffle develop

【Truffle】二、自定义合约测试,Truffle ,区块链,智能合约,合约测试,truffle,测试工具,压力测试

compile

【Truffle】二、自定义合约测试,Truffle ,区块链,智能合约,合约测试,truffle,测试工具,压力测试

migrate

【Truffle】二、自定义合约测试,Truffle ,区块链,智能合约,合约测试,truffle,测试工具,压力测试

test

【Truffle】二、自定义合约测试,Truffle ,区块链,智能合约,合约测试,truffle,测试工具,压力测试         测试成功,我们看到,测试文档里的两个方法都通过了,至此,我们完成了自定义合约测试的整体流程。文章来源地址https://www.toymoban.com/news/detail-745385.html

到了这里,关于【Truffle】二、自定义合约测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码

    专栏:区块链技术开发 Truffle Box是一个开发工具,为Truffle生态系统中的开发人员提供了预构建

    2023年04月16日
    浏览(70)
  • truffle 创建测试合约并部署到测试网络

    1、npm 安装truffle 2、创建truffle项目 3、初始化truffle目录,会生成如下几个目录 contracts 存放.sol合约文件 migrations 部署脚本目录 test 测试文件目录 truffle-config.js truffle配置文件 4、编译合约 编译合约以后会生成build目录,存放编译好生成的合约的json文件 5、修改合约 如果要部署

    2024年02月08日
    浏览(37)
  • 以太坊 – 使用truffle console访问智能合约

    🍁 博主简介 :         🏅云计算领域优质创作者         🏅2022年CSDN新星计划python赛道第一名         🏅2022年CSDN原力计划优质作者         🏅阿里云ACE认证高级工程师         🏅阿里云开发者社区专家博主 💊 交流社区 :CSDN云计算交流社区欢迎您的

    2024年02月02日
    浏览(48)
  • 如何使用Truffle来对智能合约实现并部署?

    Truffle是一个广受欢迎的以太坊智能合约开发框架,支持快速构建、测试以及发布智能合约,本文将介绍使用Truffle框架实现一个完整的智能合约的步骤详情和具体代码实现。 步骤详情: 安装Truffle框架并创建项目 首先需要在本地安装Truffle框架,在命令行中执行以下代码进行安

    2023年04月20日
    浏览(45)
  • 使用Truffle编译智能合约及所遇到的问题

    1.下载安装nvm,首先安装目录不要有空格和中文,会出现乱码 2、解压之后安装,安装后自动配置环境变量 3、nvm -v 查看版本 4、通过如下指令进行node版本的安装、替换 我是通过VS code 打开项目,编辑truffle-config.js文件 配置本地以太坊网络和远程的以太坊测试网络方式有所差异

    2023年04月08日
    浏览(42)
  • 使用Truffle for Vscode插件部署本地智能合约

    Truffle Truffle简介 Truffle是使用以太坊虚拟机(EVM)的世界级区块链开发环境、测试框架和资产管道,旨在让开发人员的开发效率更高。Truffle工具套件(truffle suite)分为四个部分Truffle、Ganache,dirzzle,Truffle for Vscode。其中Ganache提供了“One click blockchain”功能,只要点击运行ganache就能

    2024年02月07日
    浏览(72)
  • Web3本地搭建truffle智能合约开发环境

    之前的几篇文章 我们是成功的操作了我们本地区块链的 那么 本文 我们就来说说智能合约 啊 不容易啊 扯了这么久 终于到这了 智能合约是部署在区块链上 不可逆的 一种去中心化的程序,他没有任何第三方公司来管理这个程序和数据 然后 还有就是怎么连接到区块链上的智能

    2024年02月12日
    浏览(41)
  • 如何使用Truffle开发太坊智能及其区块链

      安装 Truffle 构建一个Truffle项目 浏览一下这个项目 测试项目 编译智能合约 使用 Ganache 部署项目 与智能合约交互 搭建自连网络 truflle初始化项目 Stairs upon the temple I climb and I crawl  Wonder how much further I\\\'ll go Feet that fall apart till I walk on my ankles Can I finish I just don\\\'t know ​   简介:

    2024年02月14日
    浏览(36)
  • FISCO BCOS十三、通过Truffle和remix实现合约自毁漏洞(以及修复方法)

    上一篇我写了通过Truffle和remix复现智能合约的溢出漏洞(以及修复方法),这一篇让我们来了解一下合约另外一个漏洞--自毁漏洞。 我们先来了解 solidity 中能够转账的操作都有哪些: transfer :转账出错会抛出异常后面代码不执行; send :转账出错不会抛出异常只返回 true/f

    2024年03月16日
    浏览(65)
  • 以太坊区块链之使用truffle框架完成简单投票Dapp开发

    编写环境 remix 话不多说,直接上代码 1、启动ganache 2、在 /contracts 目录下加入新建一个.sol文件,将之前编写的智能合约代码加入该文件中,博主新建的是一个 Voting.sol 的文件 !!!该文件目录一定要与智能合约代码名字相对应 3、修改truffle-config.js 将development内的host、port改

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包