← ClaudeAtlas

rails-testinglisted

Use when writing tests with fixtures, system tests, VCR cassettes, and parallel execution
mickzijdel/rails-toolkit · ★ 0 · Testing & QA · score 70
Install: claude install-skill mickzijdel/rails-toolkit
# Rails Testing Patterns ## 1. Test Helper Setup Configure the suite once in `test/test_helper.rb`: parallel workers, fixtures, helper modules, and `Current` setup/teardown. ```ruby # test/test_helper.rb ENV["RAILS_ENV"] ||= "test" require_relative "../config/environment" require "rails/test_help" require "webmock/minitest" require "vcr" require "mocha/minitest" require "turbo/broadcastable/test_helper" WebMock.allow_net_connect! module ActiveSupport class TestCase parallelize workers: :number_of_processors, work_stealing: ENV["WORK_STEALING"] != "false" fixtures :all include ActiveJob::TestHelper include ActionTextTestHelper, CachingTestHelper, SessionTestHelper include Turbo::Broadcastable::TestHelper setup do Current.account = accounts("37s") end teardown do Current.clear_all # prevent Current leaking between tests end end end ``` --- ## 2. Fixture Patterns with Deterministic UUIDs Apps with UUID primary keys need deterministic fixture IDs for cross-references. Use `ActiveRecord::FixtureSet.identify` with `:uuid`, and reference other fixtures with the `_uuid` suffix. ```yaml # test/fixtures/accounts.yml 37s: id: <%= ActiveRecord::FixtureSet.identify("37s", :uuid) %> name: 37signals external_account_id: <%= ActiveRecord::FixtureSet.identify("37signals") %> # test/fixtures/users.yml david: id: <%= ActiveRecord::FixtureSet.identify("david", :uuid) %> name: David identity: david # non-UUID F