使用Hardhat+Chai测试智能合约时遇reverted属性无效错误求助
解决Chai断言
reverted无效的问题 出现Error: Invalid Chai property: reverted是因为Chai本身不自带以太坊合约回滚相关的断言方法,这些是Hardhat专属的Chai扩展,需要正确配置插件才能使用。
解决步骤:
安装必要依赖
确保安装Hardhat官方的Chai匹配器插件:npm install --save-dev @nomicfoundation/hardhat-chai-matchers chai或使用yarn:
yarn add --dev @nomicfoundation/hardhat-chai-matchers chai配置Hardhat插件
在hardhat.config.js(或.ts)文件中导入并启用该插件:// hardhat.config.js require("@nomicfoundation/hardhat-chai-matchers"); module.exports = { // 你的其他配置内容 };若使用ES模块:
// hardhat.config.ts import "@nomicfoundation/hardhat-chai-matchers"; export default { // 你的其他配置内容 };验证测试代码
确保测试中导入的expect来自Chai(和你当前代码写法一致即可):const {assert, expect} = require("chai");插件加载完成后,
expect(...).to.be.revertedWith()这类合约回滚断言就能正常生效。
注意事项
如果你之前使用的是@nomiclabs/hardhat-waffle插件,建议替换为@nomicfoundation/hardhat-chai-matchers——前者已被官方标记为过时,新的匹配器插件提供了更完善的合约测试断言支持。
内容的提问来源于stack exchange,提问作者Codertjay
相关产品推荐
相关产品推荐

