mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-15 00:48:39 +08:00
1.7 KiB
1.7 KiB
paths
| paths | ||||||
|---|---|---|---|---|---|---|
|
Ruby Testing
This file extends common/testing.md with Ruby and Rails specific content.
Framework
- Use Minitest when the Rails app follows the default Rails test stack.
- Use RSpec when it is already established in the project or the team has explicit production conventions around it.
- Do not mix Minitest and RSpec inside the same feature area without a migration reason.
Test Pyramid
- Put fast domain behavior in model, service, query, policy, and job tests.
- Use request/controller tests for HTTP contracts, auth behavior, redirects, status codes, and response shapes.
- Use system tests with Capybara for browser-critical flows only; keep them focused and stable.
- Cover background jobs with unit tests for behavior and integration tests for queue/enqueue contracts.
Fixtures And Factories
- Use Rails fixtures when they are the project default and the data graph is small.
- Use
factory_botwhen scenarios need explicit object construction or complex traits. - Keep test data close to the behavior being asserted; avoid global fixtures that hide setup cost.
Commands
Prefer project-local commands:
bin/rails test
bin/rails test test/models/user_test.rb
bundle exec rspec
bundle exec rspec spec/models/user_spec.rb
Coverage
- Use SimpleCov when coverage is enforced; keep thresholds in CI and avoid gaming branch coverage with low-value tests.
- Add regression tests for bug fixes before changing production code.
Reference
See skill: tdd-workflow for the repo-wide RED -> GREEN -> REFACTOR loop.