К основному содержанию
скилл CX Codex

rspec — скилл для Claude Code: правила тестов на RSpec

Задаёт агенту правила написания тестов на RSpec для Ruby и Rails: организация, данные, изоляция. Пригодится, когда спеки расползаются и дублируются.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill rspec -a claude-code
Открыть на GitHub

Что делает rspec

Скилл превращает агента в знатока Ruby, Rails и RSpec. Он держит в голове набор принципов: тесты покрывают типичные случаи и краевые, включая неверный ввод и ошибки. Блоки describe, context и it получают осмысленные имена, проверки пишутся через expect, а структура каталога со спеками повторяет структуру исходников.

Для данных скилл советует let и let! вместо щедрой подготовки в before, а фабрики FactoryBot ставит выше фикстур. Каждый тест остаётся независимым: внешние сервисы и базы мокаются, методы стабятся. Оговорка есть и в обратную сторону — мокать всё подряд не надо, реальное поведение проверяйте там, где это возможно.

Дублирование скилл предлагает убирать через shared_examples и shared_context, а повторяющиеся проверки выносить в хелперы и свои матчеры. Внутри — один файл SKILL.md с принципами и примером структуры спека для модели User. Ничего, кроме самого текста правил, скилл не несёт: ни гемов, ни конфигов он не ставит, так что rspec-rails и FactoryBot в проекте должны быть до того, как вы попросите агента писать тесты.

Какие задачи решает

  • разложить спеки по describe и context без каши
  • убрать дублирующуюся подготовку данных между тестами
  • изолировать тест от внешнего API через мок
  • вынести повторяющиеся проверки в shared_examples
  • дописать краевые случаи к уже готовому тесту

Примеры запросов агенту

  • Напиши спеки для модели User по правилам скилла rspec
  • Разбей этот файл спека на describe и context, данные готовь через let и FactoryBot
  • Вынеси повторяющиеся проверки из этих тестов в shared_examples

Как установить rspec

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill rspec -a claude-code

2Вручную: положить файлы

~/.claude/skills/rspec/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/rspec/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о rspec

Как установить rspec в Claude?

Выполните npx skills add Mindrally/skills --skill rspec -a claude-code. После этого файл скилла лежит в ~/.claude/skills/rspec/SKILL.md.

Что делает скилл rspec?

Он даёт агенту набор правил по тестам на RSpec: как именовать блоки, как готовить данные через let и FactoryBot, как изолировать тесты и убирать дублирование. Агент применяет их, когда пишет или правит спеки.

Нужно ли что-то ставить в проект до работы со скиллом?

Сам скилл приносит только текст правил. Чтобы примеры и советы ложились на код, в проекте должны быть RSpec и FactoryBot — скилл их не устанавливает.

Исходный текст

SKILL.md · Apache-2.0
---
name: rspec
description: RSpec testing best practices for Ruby and Rails applications, covering test organization, data management, and isolation patterns.
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# RSpec Testing Best Practices

You are an expert in Ruby, Rails, and RSpec testing.

## Key Principles

### Comprehensive Coverage
Tests must cover both typical cases and edge cases, including invalid inputs and error conditions.

### Readability and Clarity
- Employ descriptive names for `describe`, `context`, and `it` blocks
- Use the `expect` syntax for improved assertion readability
- Keep test code concise without unnecessary complexity
- Include comments explaining complex logic

### Test Organization
- Use `describe` for classes/modules and `context` for different scenarios
- Use the `subject` helper to prevent repetition when defining objects under test
- Mirror your source file structure within the spec directory

### Test Data Management
- Leverage `let` and `let!` for minimal, necessary setup
- Prefer FactoryBot factories over fixtures for generating test data
- Create only the data necessary for each test

### Test Isolation
- Each test must be independent without shared state between tests
- Mock external services (APIs, databases) and stub methods appropriately
- Avoid over-mocking: test real behavior when feasible

### Reduce Duplication
- Share common behaviors across contexts using `shared_examples`
- Extract repetitive patterns into helpers or custom matchers
- Use `shared_context` for common setup across multiple specs

## Example Structure

```ruby
RSpec.describe User, type: :model do
  subject { build(:user) }

  describe 'validations' do
    it { is_expected.to validate_presence_of(:email) }
    it { is_expected.to validate_uniqueness_of(:email) }
  end

  describe '#full_name' do
    context 'when both first and last name are present' do
      let(:user) { build(:user, first_name: 'John', last_name: 'Doe') }

      it 'returns the combined name' do
        expect(user.full_name).to eq('John Doe')
      end
    end

    context 'when last name is missing' do
      let(:user) { build(:user, first_name: 'John', last_name: nil) }

      it 'returns only the first name' do
        expect(user.full_name).to eq('John')
      end
    end
  end
end
```

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «Тесты и QA» →
inertia-rails-testing inertia-rails Скилл для тестов Inertia Rails на RSpec и Minitest: проверка компонента, пропсов и flash без ручного разбора JSON. CX Codex +1 465установок rails-expert https://github.com/Jeffallan Скилл для стека Rails 7+ с Hotwire, Sidekiq и RSpec. Помогает писать контроллеры, настраивать фоновые задачи и устранять проблемы с N+1. CX Codex +1 4 700установок rails-cursorrules-prompt-file PatrickJS Правило для Cursor, которое задаёт агенту стиль разработки на Rails 8: генераторы, bin/dev, Solid-стек, Minitest и Hotwire. ★ 41 011звёзд репо sentry-ruby-sdk getsentry Пошагово настраивает отслеживание ошибок и трейсинг Sentry в Ruby-приложениях. Помогает быстро перейти с других систем мониторинга. CX Codex +1 2 100установок appwrite-ruby appwrite Подсказывает агенту, как работать с Appwrite из Ruby: пользователи, таблицы, файлы, команды. Пригодится в Rails и Sinatra. CX Codex +1 796установок ruby-rails-application aj-geddes Помогает создавать приложения на Ruby on Rails по архитектуре MVC. Настраивает модели Active Record, REST-контроллеры, JWT-аутентификацию и миграции базы данных. CX Codex +1 655установок

Из того же набора168

solidity Скилл для написания и ревью Solidity-контрактов: паттерны защиты от reentrancy, оптимизация gas, тесты и связка с React-фронтендом. CX Codex +1 721установок autogen-development Подсказывает агенту, как писать код на Microsoft AutoGen: создание агентов, групповые чаты, инструменты, оркестрация. CX Codex +1 721установок vercel-development Набор правил для ИИ-агента: как писать код под Next.js App Router, React Server Components и Vercel AI SDK. Пригодится, когда агент лепит клиентские компоненты там, где хватило бы серверных. CX Codex +1 712установок rest-api-django Набор правил для ИИ-агента, который пишет Django REST API: структура проекта, сериализаторы, JWT-аутентификация, борьба с N+1. CX Codex +1 712установок angular-development Задаёт агенту правила Angular, SASS и TypeScript: строгая типизация, standalone-компоненты, сигналы. Пригодится, когда в проекте уже есть Angular. CX Codex +1 705установок stripe Правила интеграции Stripe для TypeScript, React и Next.js: приём платежей на сервере, подписки, вебхуки. Пригодится, когда агент пишет оплату в проекте. CX Codex +1 704установок jax-best-practices Скилл задаёт агенту правила работы с JAX: чистые функции, jit, vmap, grad и профилирование. Пригодится, если вы пишете численный код или обучаете модели на JAX. CX Codex +1 704установок koa-typescript Задаёт агенту правила разработки API на Koa.js и TypeScript: слоистая модель middleware, async/await, структура проекта. CX Codex +1 704установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой