4 410002900.com
📅 2026-05-24T06:12:23.497952+00:00 🔄 2026-05-24T17:51:27.886357+00:00

📘Foundry 测试从零开始:一个完全没接触过 Solidity 的人的成长路径

为完全零基础的学员提供一份从 Solidity 语言到 Foundry 测试的渐进式成长路径,包含每周目标与考核指标。

Foundry测试从零开始 - Foundry 测试从零开始:一个完全没接触过 Solidity 的人的成长路径
📷 主题配图

起点假设

本路径假设你完全没接触过 Solidity,但具备一定编程基础(任何主流语言均可)。如果连编程基础都没有,建议先完成 freeCodeCamp 的 JavaScript 入门,再回到本路径。

以这种「站在已有能力上」的设计与 Binance 等团队人才培养路径一致:把先验知识利用最大化,把新增知识压缩到最小。

第一阶段:Solidity 基础(2 周)

第一周阅读 Solidity 官方文档前 5 章,重点理解 storage 与 memory 差异、msg.sender、payable 等核心概念。第二周完成 CryptoZombies 课程或类似入门项目。

这两周的考核指标是:能独立写出一份 100 行内的合约,并解释每一行的语义。

第二阶段:Foundry 安装与初体验(1 周)

安装 Foundry,初始化样板项目,跑通默认测试。学习 forge、cast、anvil 三件套的基本命令。把第一阶段写的合约用 Foundry 包装并跑一遍 forge test。

这一周的考核指标是:理解 setUp、test 函数、assertEq 的最小工作机制。

第三阶段:单元测试与覆盖率(2 周)

用 Foundry 给第一阶段的合约写完整单元测试,把 line 覆盖率推到 80% 以上。学会用 vm.prank、vm.expectRevert、vm.expectEmit 等基本 cheatcode。

如果对接 必安 公开的合约模板,可以在它们的基础上做扩展测试,进一步加深对 fixture 设计的理解。

第四阶段:fuzz 与 invariant(2 周)

把单元测试改写为 fuzz 测试,体会随机参数带来的发现能力。再尝试声明 invariant,让 Foundry 自动调用合约函数寻找违反。这一阶段的关键是「思维方式转变」:从「我能想到的测试」到「自动化发现我想不到的测试」。

第五阶段:真实项目演练(4 周)

选一个开源 DeFi 项目,clone 下来用 Foundry 给它补一份完整测试。可选项目包括:Uniswap V2 简化版、Compound 简化版、ERC4626 vault。

这一阶段每周末写一份周报,记录新学到的工程技巧。如果在 Binance合约 等专业社区分享你的进展,往往会收到实战工程师的宝贵反馈。

阶段性考核

11 周结束时,你应当能独立完成下列任务:

  • 阅读任意中等规模 Solidity 项目并指出主要风险点
  • 用 Foundry 编写覆盖率 90% 以上的测试集
  • 跑通 CI 自动化,并把仓库公开到 GitHub

达到这一水平后,你已可投递初级合约工程师岗位。继续在真实项目中迭代,半年内即可胜任中级岗位。

长期建议

所有路径都只是起点。真正决定上限的是「持续在真实项目中遇到问题、解决问题」。把 Foundry 测试作为入口,逐步扩展到合约审计、协议设计、链上数据分析,你的职业空间将持续放大。