用途:为 Foundry 项目编写测试与脚本,覆盖集成(具体)、模糊、分叉、不变量测试以及 Solidity 部署脚本,并给出命名、断言、Mock 与调试规范。
主要能力:按目录与命名区分测试类型——集成测试 tests/integration/concrete/.t.sol、模糊测试 tests/integration/fuzz/.t.sol、分叉测试 tests/fork/.t.sol、不变量测试 tests/invariant/Invariant.t.sol、脚本 scripts/solidity/*.s.sol。集成测试用 test_RevertWhen_/test_RevertGiven_/test_When_ 命名,事件断言在动作前、状态断言在动作后;模糊测试用 testFuzz_ 前缀,先 _bound() 再 vm.assume(),按依赖顺序绑定;分叉测试用 vm.createSelectFork("ethereum")、deal(),对 USDC/USDT 用 assumeNoBlacklisted(),对 USDT 用 forceApprove();不变量测试分 handlers/stores 目录,targetContract 与 excludeSender 限定范围;脚本继承 BaseScript 并使用 ETH_FROM、MNEMONIC 环境变量。
使用方式:运行 forge test --match-path/--match-contract/--match-test,模糊测试加 --fuzz-runs,覆盖率用 forge coverage --report lcov;调试用 -v 到 -vvvvv、console2 日志、forge debug、forge inspect storage-layout、vm.label 与 vm.snapshot/vm.revertTo。部署先模拟后广播:forge script scripts/Deploy.s.sol --sig "run(...)" ARGS --rpc-url $RPC,广播加 --broadcast --verify。
适用场景:Sablier 仓库及类似 Solidity 项目的测试编写、部署脚本与 Gas 基准。
限制:具体常量、Mock 与项目约定需查阅仓库内 .claude/skills/foundry-testing/references/ 下的参考文档;本资料未提供收费、平台支持范围等信息。