SuperAPI AI 工具集

Testing

测试与质量

查看项目

更新于 10-16 01:36

技能介绍

用途:该技能用于在 Effect 项目中编写测试,标准集成是 @effect/vitest,它提供 Effect 感知的测试函数,自动处理 Effect 执行、作用域资源、Layer 组合与 TestClock 注入。

主要能力:核心测试函数包括 it.effect(自动提供 TestContext 与 TestClock)、it.scoped(自动关闭 Scope)、it.live(使用真实运行时环境)、it.scopedLive、it.layer(为整组测试共享 Layer)、it.prop(属性测试)。支持 Vitest 修饰符如 skip、only、fails、skipIf、runIf、each,以及 it.flakyTest 重试不稳定测试。

关键模式:服务导向测试要求把所有外部或有副作用的依赖(API、数据库、文件系统、第三方 SDK、时钟、随机数)用 Context.Tag 包装成 Service,测试时通过 Layer 提供测试实现,从而不触达真实外部系统。有状态测试可用 Layer.effect 配合 Ref 实现仓储类服务。多个测试 Layer 可用 Layer.merge 组合。

属性测试:由于每个数据类型都有 Schema,可用 Arbitrary.make 从 Schema 生成测试数据,配合 it.prop 或 it.effect.prop 验证不变量,避免手工构造测试数据。

安装与设置:pnpm add -D vitest @effect/vitest,并在测试设置中调用 addEqualityTesters() 启用 Effect 感知的相等比较。

限制:资料未提供该技能的具体版本兼容范围、性能数据或收费信息;示例代码中的业务类型与错误类型需按实际项目定义。