hardhat 单元测试时如何观察gas消耗情况
文章目录前言hardhat 单元测试时如何观察gas消耗情况1. 安装依赖与配置2. 演示示例前言如果您觉得有用的话记得给博主点个赞评论收藏一键三连啊写作不易啊^ _ ^。而且听说点赞的人每天的运气都不会太差实在白嫖的话那欢迎常来啊!!!hardhat 单元测试时如何观察gas消耗情况1. 安装依赖与配置安装gas reporter 组件:yarnadd-Dhardhat-gas-reporter修改hardhat.config.ts 配置中开启gas-reporter引入:importhardhat-gas-reporter;添加:gasReporter:{enabled: true, currency:USD, token:ETH}2. 演示示例合约:// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.28;contract HelloWorld{uint a;uint b;functionhello()public pure returns(string memory){returnHello World;}functiontest1()public{a;}functiontest2()public{a;b;}}单元测试:importnomicfoundation/hardhat-ethers;import{ethers}fromhardhat;import{expect}fromchai;describe(HelloWorld,function(){it(should get the hello world, async(){// 步骤如下: //1. setup 安装合约 //2.importcontract 引入合约 //3.testaction //安装合约 const HWawait ethers.getContractFactory(HelloWorld);// 部署合约,拿到合约实例 const hwawait HW.deploy();await hw.waitForDeployment();//等待部署完成 // 测试gasfor(let index0;index10;index){await hw.test1();await hw.test2();}// 测试合约的方法调用结果,并输出 expect(await hw.hello()).to.equal(Hello World);});});执行单元测试:npx hardhattest可以看到下图每个方法的gas使用都会在控制台上打印出来。说明:字段含义重点观察点Min该方法执行的最小 Gas 消耗代表最优情况下的 Gas 成本Max该方法执行的最大 Gas 消耗代表最坏情况下的 Gas 成本比如状态变化、循环分支差异Avg该方法执行的平均 Gas 消耗最具参考价值反映日常调用的平均成本# calls该方法在测试中被调用的总次数确认你的测试用例是否覆盖了足够多的调用场景usd (avg)按当前 ETH 价格换算的平均美元成本直观感受实际部署后的经济成本这里显示 - 是因为未配置价格
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2409623.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!