SuperAPI AI 工具集

cairo-testing

测试与质量

查看项目

更新于 10-16 06:22

技能介绍

用途:为 Cairo 智能合约编写并验证测试,覆盖单元、集成、模糊(fuzz)、分叉(fork)与回归测试,也可用于验证事件发射、失败语义与访问控制,或提升既有合约的测试覆盖率。不适用于合约架构设计、性能调优、部署操作与安全审计。

主要能力:按模式选择测试类型——unit 用 contract_state_for_testing() 测单个函数;integration 通过 dispatcher 测已部署合约与多合约交互;fuzz 用 #[fuzzer] 做属性测试;fork 用 #[fork] 针对 Starknet 实时状态;regression 把已知问题转成修复前失败、修复后通过的测试对。

使用方式:先分类需求并阅读被测合约,识别所有改状态的 external 函数、存储字段、事件与访问控制模式,再加载对应参考(基础结构、cheatcode、事件测试、模糊、分叉、安全回归配方)。随后输出不超过 30 行的测试计划并等待确认,再按 snforge 模式实现,运行 snforge test 验证,最后做覆盖率检查并交接。

安全关键规则:每个改状态的 external 函数必须有正向测试,显式拒绝条件需有负向测试;访问控制函数须测授权与未授权调用者;panic 断言用 #[should_panic(expected: '...')];事件断言用 spy_events + assert_emitted 校验完整数据;模糊测试使用固定种子保证可复现。cheatcode 用后须调用对应 stop_cheat_* 避免状态泄漏。

限制:资料未提供具体收费、价格、平台支持范围与效果数据;错误码 TEST-001 至 TEST-004 给出编译失败、缺失访问控制负向测试、事件断言不匹配、模糊结果不稳定时的恢复方向。