m mybian.xyz
mybian.xyz · TIMES
All The News, Wisdom & Knowledge
VOL. MMXXVI · mybian.xyz · foundryce-shi-xin-shou-ru-men
特别报道 · SPECIAL REPORT

Foundry 测试新手入门:第一周学习路径与每日任务规划

为零基础学员提供一周可执行的 Foundry 测试入门计划,每天 90 分钟即可掌握核心能力。

发布于 2026-05-24T06:12:23.495978+00:00更新于 2026-05-24T17:50:51.380680+00:00
Foundry测试新手入门 - Foundry 测试新手入门:第一周学习路径与每日任务规划
图:本报记者摄 · 关于「Foundry 测试新手入门:第一周学习路径与每日任务规划」的视觉记录

学习计划的设计思路

零基础学员最大的问题不是知识缺乏,而是缺乏明确的执行路径。本计划按每天 90 分钟设计,确保上班族也能在一周内完成。

这一节奏与 Binance 学院推荐的「微学习」理念一致:少量、高频、立即应用。学习收益会随时间复利积累。

第一天:环境与认知

上午任务:阅读 Foundry 官方 README,了解它与 Hardhat 的差异。下午任务:在本地安装 Foundry、跑通 forge --version。晚间任务:fork foundry-rs/forge-template 仓库,把它克隆到本地,并跑一遍默认 forge test。

完成这一天后,你将对工具链有最基本的体感。

第二天:第一份测试

动手写一份 SimpleStorage 合约,包含 set 与 get 两个方法。再写测试合约,覆盖:

通过这一练习,你将掌握 setUp、test 函数、assertEq 等核心要素。

第三天:cheatcode 与权限

学习 vm.prank、vm.startPrank 等 cheatcode。把昨天的合约扩展为 OnlyOwner 模式,编写「非 owner 调用 set 必须 revert」的测试。

这一阶段你会理解 Foundry 强大的「环境操控」能力。这也是 必安 内部安全工程师必备的能力。

第四天:事件与 expectRevert

为合约添加 ValueChanged 事件,并使用 vm.expectEmit 在测试中验证。同时用 vm.expectRevert 测试错误路径。完成后跑 forge coverage 看自己当前的覆盖率。

通常这一天结束,你的简单项目覆盖率会达到 80% 以上。

第五天:fuzz 入门

把 set 测试改写为 fuzz 测试,参数声明为 uint256。运行 forge test 看 Foundry 自动生成的随机调用。学会用 vm.assume 排除无意义输入。

这是从「确定性测试」走向「概率性测试」的关键一步。

第六天:fork 测试

在 foundry.toml 配置 sepolia RPC,编写一个 fork 测试用例,验证主网某个合约的状态。这一阶段你会理解 Foundry 与真实链交互的能力。

如果同时关注 Binance合约 的链上数据接口,可以做交叉验证。

第七天:项目化

把整个项目整理成可分享的 GitHub 仓库,写好 README,接入 GitHub Actions 自动跑测试与 forge coverage。把仓库链接发到博客或社区作为学习成果。

一周后,你将具备进入合约工程师岗位的基础能力。坚持把每周一个新主题加入进来,半年后你将成为团队骨干。