Forge详细教程

Forge是一个Rust编写的以太坊开发框架,用于创建Solidity项目和测试。本文是针对Solidity开发者的学习指南,涵盖了项目初始化、依赖管理、测试编写,包括特殊功能如Fuzzing、Cheat Codes、日志跟踪等。Forge测试用Solidity编写,提供模糊测试、作弊码等高级特性,便于智能合约开发和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Forge是一个以太坊开发框架。您可以使用它来创建Solidity项目,管理依赖关系,运行测试等等。它受Dapp启发,与之有一个重要的相似之处,即测试是用Solidity编写的。这与迄今为止的其他以太坊开发框架不同。它是用Rust编写的,非常快速。

这是一个初学者指南。我将介绍如何创建项目,管理依赖项和编写测试。预期的受众是熟悉Solidity并希望了解如何使用Forge进行开发的人。

开始

首先,您需要安装Foundty泛的以太坊工具包。我建议查看仓库以获取最新的安装说明,但这是当前的安装命令。

$ cargo install --git https://github.com/gakonst/foundry --bin forge --locked

请注意,如果您尚未安装Rust/Cargo,则需要先安装它。请查看这里的说明
(Forgeup是一个有用的工具,用于获取最新的Forge版本或指向特定分支。)

接下来,创建一个文件夹进行操作,并初始化一个项目。

$ mkdir forge-tutorial
$ cd forge-tutorial
$ forge init

Nice!现在在forge-tutorial目录下应该有两个目录:libsrc

lib目录是所有安装的依赖项所处的位置。这些依赖项是作为git子模块进行管理的。您会发现在lib目录中已经有一个名为ds-test的依赖项,默认已经安装好了。ds-test是由Dapp的创建者开发的,其中包含了一些用于测试的有用的函数和事件的合约。您可以在Github上看到这个代码。

src目录是您的代码所在的位置。在顶层您会看到Contract.sol和一个test目录。在test目录中有Contract.t.sol

测试

由于这份文档是针对那些已经熟悉Solidity的人群,我将主要关注于测试,因为这正是在使用Forge时的独特之处。

开始

运行forge test,您应该会看到类似这样的内容。

image.png


测试通过,并告诉您测试函数使用的 gas 量。

让我们打开Contract.t.sol文件,看看发生了什么。

image.png


首先,您应该注意到我们在用Solidity编写测试!许多人已经习惯了用其他语言为Solidity编写测试,但当您考虑这一点时,这似乎有点奇怪。您能想到其他需要您使用不同语言来测试代码的编程语言吗?这是Forge的创作者的一个重要观点:如果每个Solidity开发者都必须同时了解其他语言,我们怎样才能培养出优秀的Solidity开发者呢?

让我们深入研究一下正在发生的事情。首先,我们注意到在顶部导入了ds-test,合约正在继承自DSTest,这就给ContractTest提供了访问ds-test/test.sol中所有方便的测试函数/事件的权限,正如我上面所提到的。例如,正在使用的assertTrue函数是在<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HongYingClub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值