SuperAPI AI 工具集

rspec-core

测试与质量

查看项目

更新于 10-15 20:05

技能介绍

用途:该技能面向 Ruby 的 RSpec 行为驱动开发(BDD)测试框架,聚焦 rspec-core 核心 DSL,帮助用户编写和结构化测试用例。

主要能力:使用 describe 描述被测对象(类、方法、行为),用 context 区分不同场景或状态;常用命名约定包括 RSpec.describe User、describe "#instance_method"、describe ".class_method",以及以 when、with、without、given 开头的 context。用 it 或 specify 编写单个用例,it 描述应补全“it...”句式,一般每个示例测试一个行为。

subject 与 let:subject 定义主要被测对象,可命名如 subject(:user);let 提供惰性求值并记忆化的辅助对象,let! 则在每个示例前立即创建,适用于回调、关联或创建顺序有要求的场景。

钩子:before(:each)/before、after(:each)、before(:all)/before(:context)、after(:all) 用于在示例前后执行代码;around 可包裹示例,适合时间冻结或数据库事务回滚。

待定与跳过:pending 标记尚未实现或暂时失败的行为,skip 完全跳过,也可用 xit 跳过示例。

元数据与过滤:可给示例加标签(如 :slow、:integration、timeout: 30),通过 rspec --tag slow、--tag ~slow、--tag type:model 过滤运行。聚焦用 fit、fdescribe、fcontext,但提交前应移除。

配置:spec_helper.rb 用于纯 RSpec 配置,rails_helper.rb 用于 Rails 相关设置并引入前者;可在 RSpec.configure 中配置 mock、expectation、focus 过滤与随机顺序等。

最佳实践:描述行为而非实现,使用清晰的情境名称,优先使用 let 而非实例变量,保持每个示例相互独立。

限制:资料仅覆盖 rspec-core 核心用法,未提供安装命令、版本要求、收费信息或与其他测试库集成细节,这些暂未提供。