本文介绍了Foundry的作弊码vm.deal,它可以直接向任何账户注入ETH,无需水龙头或转账,方便开发者模拟拥有大量ETH的用户进行测试,例如支付gas或测试可支付流程。通过vm.deal,开发者可以更专注于测试逻辑,而无需手动进行账户充值。
高级 Foundry 作弊码系列:第 5 部分 - 作弊码 vm.deal,为账户提供资金。
厌倦了编写水龙头来测试 ETH 流动? vm.deal 是你的作弊码,可以直接将 ETH 铸造到任何账户中。没有转账或延迟。像鲸鱼一样进行测试。🐋
在第 4 部分中学习了如何弯曲时间
之后,铸造一些以太币也是理所当然的。本章展示了 vm.deal
如何立即为任何地址充值,无需水龙头,无需转账,因此你可以模拟富有的用户,支付 gas,或者以零摩擦测试可支付的流程。
在测试中,你经常需要一个拥有 ETH 的账户(例如,支付 gas 或进行可支付的调用)。
vm.deal(address who, uint256 newBalance)
作弊码简单地将 who 的 Ether 余额设置为 newBalance。例如:
这里 vm.deal
(rich, 10 ether) 在测试操作之前向 rich 铸造了 10 ETH。Foundry 作弊码文档解释说,它“将地址 who 的余额设置为 newBalance”。它甚至支持代币:一个变体允许你设置 ERC20 余额,并在需要时调整总供应量。
这比从主网账户转账或在测试中编写水龙头要简单得多。它非常适合测试需要调用者拥有特定余额的合约。例如,如果合约需要存款,你可以将那么多 ETH 提供给测试用户并继续。
总而言之,vm.deal
消除了在测试中设置账户余额时的摩擦,让你专注于被测试的逻辑,而不是手动为账户提供资金。
如果你喜欢这类内容,请在 Twitter 上关注 @threesigmaxyz
并浏览我们的 blog
以获取更多关于区块链主题的见解。
明天发布第 6 部分:使用 Forge 进行高级模糊测试
- 原文链接: x.com/threesigmaxyz/stat...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!