{"id":13983808,"url":"https://github.com/Darhazer/awesome-rspec","last_synced_at":"2025-07-21T23:31:30.193Z","repository":{"id":229173992,"uuid":"775994420","full_name":"Darhazer/awesome-rspec","owner":"Darhazer","description":"Curated list of awesome RSpec related resources","archived":false,"fork":false,"pushed_at":"2024-09-06T11:42:13.000Z","size":45,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-17T14:02:25.719Z","etag":null,"topics":["awesome","awesome-list","awesome-lists","awesome-rspec","rspec"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Darhazer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Darhazer"]}},"created_at":"2024-03-22T13:17:30.000Z","updated_at":"2024-12-20T05:12:24.000Z","dependencies_parsed_at":"2024-03-26T15:28:08.836Z","dependency_job_id":"82b91bfa-2685-4e07-9db0-aad1f6f13012","html_url":"https://github.com/Darhazer/awesome-rspec","commit_stats":{"total_commits":32,"total_committers":2,"mean_commits":16.0,"dds":0.0625,"last_synced_commit":"98a6f49a24a373f3fcb56e1a482d21e124a09220"},"previous_names":["darhazer/awesome-rspec"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Darhazer/awesome-rspec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darhazer%2Fawesome-rspec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darhazer%2Fawesome-rspec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darhazer%2Fawesome-rspec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darhazer%2Fawesome-rspec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Darhazer","download_url":"https://codeload.github.com/Darhazer/awesome-rspec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Darhazer%2Fawesome-rspec/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266065746,"owners_count":23871218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","awesome-lists","awesome-rspec","rspec"],"created_at":"2024-08-09T05:01:56.472Z","updated_at":"2025-07-21T23:31:30.147Z","avatar_url":"https://github.com/Darhazer.png","language":null,"funding_links":["https://github.com/sponsors/Darhazer"],"categories":["Programming Language Lists","Other Awesome Ruby (and blogs) Lists [![OPML](https://img.shields.io/badge/OPML-000000?style=flat-square\u0026color=orange)](/opml/other.opml)"],"sub_categories":["Ruby Lists"],"readme":"# Awesome RSpec [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\nA curated list of awesome RSpec-related resources\n\n## Contents\n- [RSpec](#rspec)\n- [Style guides and linters](#style-guides-and-linters)\n- [Books](#books)\n- [Articles](#articles)\n- [Matchers](#matchers)\n- [Mocks](#mocks)\n- [Parallel execution](#parallel-execution)\n- [Tools](#tools)\n\n## RSpec\n- [RSpec official web site](https://rspec.info)\n\n## Style guides and linters\n- [RSpec Style Guide](https://rspec.rubystyle.guide)\n- [Even better specs](https://evenbetterspecs.github.io) - An opinionated set of best practices to support the creation of tests that are easy to read and maintain.\n- [rubocop-rspec](https://github.com/rubocop/rubocop-rspec)\n- [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot)\n\n## Books\n- [Effective testing with RSpec 3](https://pragprog.com/titles/rspec3/effective-testing-with-rspec-3/)\n- [Everyday Rails Testing with RSpec](https://leanpub.com/everydayrailsrspec)\n\n## Articles\n- [How to Test Rails Models with RSpec](https://semaphoreci.com/community/tutorials/how-to-test-rails-models-with-rspec)\n- [How to Use Custom RSpec Matchers to Specify Behaviour](https://semaphoreci.com/community/tutorials/how-to-use-custom-rspec-matchers-to-specify-behaviour)\n- [Using RSpec Metadata](https://semaphoreci.com/community/tutorials/using-rspec-metadata)\n\n## Matchers\n- [action_mailer_matchers](https://github.com/contently/action_mailer_matchers) - RSpec matchers to test Rails' common ActionMailer functionality.\n- [active_record_change_matchers](https://github.com/Darhazer/active_record_change_matchers) - Custom RSpec matchers for ActiveRecord record creation.\n- [db-query-matchers](https://github.com/sds/db-query-matchers) - RSpec matchers for database queries made by ActiveRecord.\n- [mongoid-rspec](https://github.com/mongoid/mongoid-rspec) - RSpec matchers for Mongoid.\n- [human_time](https://github.com/allenan/human_time) - Time and date comparisons for humans.\n- [n_plus_one_control](https://github.com/palkan/n_plus_one_control) - Matchers to ensure code doesn't produce N+1 queries.\n- [pundit-matchers](https://github.com/pundit-community/pundit-matchers) - A set of RSpec matchers for testing Pundit authorisation policies.\n- [resque_spec](https://github.com/leshill/resque_spec) - A test double of Resque for RSpec.\n- [rspec-any_of](https://github.com/toptal/rspec-any_of) - Provides `any_of` and `all_of` matchers.\n- [rspec-graphql_matchers](https://github.com/khamusa/rspec-graphql_matchers) - GraphQL matchers.\n- [rspec-json_matchers](https://github.com/PikachuEXE/rspec-json_matchers) - A collection of RSpec matchers for testing JSON data.\n- [rspec-benchmark](https://github.com/piotrmurach/rspec-benchmark) - Performance testing matchers for RSpec.\n- [rspec-sidekiq](https://github.com/wspurgin/rspec-sidekiq) - Simple testing of Sidekiq jobs via a collection of matchers and helpers.\n- [rspec-sqlimit](https://github.com/nepalez/rspec-sqlimit) - RSpec matcher to control SQL queries made by block of code.\n- [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) - One-liners to test common Rails functionality.\n\n## Mocks\n- [active_mocker](https://github.com/zeisler/active_mocker) - Creates stub classes from any ActiveRecord model.\n- [bunny-mock](https://github.com/arempe93/bunny-mock) - A mock client for RabbitMQ modeled after the Bunny client in ruby.\n- [mock_redis](https://github.com/sds/mock_redis) -MockRedis provides the same interface as redis-rb, but it stores its data in memory instead of talking to a Redis server.\n- [mock5](https://github.com/rwz/mock5) - Create and manage API mocks with Sinatra.\n- [moctail](https://github.com/testdouble/mocktail) - A mocking library for Ruby built with modern Ruby 3 APIs and with first-class support for type checking with Sorbet.\n- [mosoco](https://github.com/frodsan/mocoso) - A minimalist stub \u0026 mock library.\n- [rspec-stubbed_env](https://github.com/pboling/rspec-stubbed_env/) - Simple helper method to stub ENV values within RSpec tests.\n- [resque-mock](https://github.com/danp/resque-mock) - Resque mocking without redis.\n- [ruby-dns-mock](https://github.com/mocktools/ruby-dns-mock) - Mimic any DNS records for your test environment with fake DNS server.\n- [ruby-smtp-mock](https://github.com/mocktools/ruby-smtp-mock) - Mimic any SMTP server behaviour for your test environment with fake SMTP server.\n- [spy](https://github.com/ryanong/spy) - A simple opinionated mocking framework.\n- [stripe-ruby-mock](https://github.com/stripe-ruby-mock/stripe-ruby-mock) - A mocking library for testing Stripe integration.\n- [stub_shell](https://github.com/stackbuilders/stub_shell/) - Helps you to test your libraries that interact with the system through the Kernel backquote and system methods.\n- [testftpd](https://github.com/christian-schulze/testftpd) - Simple FTP server written in pure Ruby, allowing integration testing of FTP client code without mocks and stubs.\n- [verified_double](https://github.com/gsmendoza/verified_double) - Contract tests for mocks.\n\n## Parallel execution\n- [flatware](https://github.com/briandunn/flatware) - A parallel test runner for RSpec and Cucumber with pretty output.\n- [knapsack](https://github.com/KnapsackPro/knapsack) - Knapsack splits tests evenly across parallel CI nodes to run fast CI build and save you time.\n- [parallel_tests](https://github.com/grosser/parallel_tests) - Speedup tests by running parallel on multiple CPU cores.\n- [rspec-distrib](https://github.com/toptal/test-distrib/tree/main/rspec-distrib) - Run specs in parallel on multiple machines.\n- [rspecq](https://github.com/skroutz/rspecq) - Distribute and run RSpec suites among parallel workers; for faster CI builds.\n- [test-queue](https://github.com/tmm1/test-queue) - Parallel test runner for CI environments\n- [turbo_tests](https://github.com/serpapi/turbo_tests) - Like parallel_tests but with incremental summarized output.\n\n## Tools\n- [chefspec](https://github.com/chefspec/chefspec) - Write RSpec examples and generate coverage reports for Chef recipes.\n- [crystallball](https://github.com/toptal/crystalball) - Regression Test Selection library for your RSpec test suite.\n- [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) - Strategies for cleaning databases in Ruby. Can be used to ensure a clean state for testing.\n- [database_rewinder](https://github.com/amatsuda/database_rewinder) - Minimalist and ultra-fast database cleaner.\n- [dockerspec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily.\n- [factory_bot](https://github.com/thoughtbot/factory_bot) - A library for building database records.\n- [factory_bot_instruments](https://github.com/shiroyasha/factory_bot_instruments) - Instruments for benchmarking, tracing, and debugging Factory Girl models.\n- [factory_trace](https://github.com/djezzzl/factory_trace) - Simple tool to maintain factories and traits from FactoryBot.\n- [impersonator](https://github.com/jorgemanrubia/impersonator) - Ruby library to record and replay object interactions.\n- [mutant](https://github.com/mbj/mutant) - Mutation testing.\n- [retest](https://github.com/AlexB52/retest) - A simple CLI to watch file changes and run their matching ruby specs.\n- [rspectre](https://github.com/dgollahon/rspectre) - Tool to remove unused parts of the specs.\n- [rspec_tracer](https://github.com/avmnu-sng/rspec-tracer) - RSpec Tracer is a specs dependency analyzer, flaky tests detector, tests accelerator, and coverage reporter tool.\n- [rspec-wait](https://github.com/laserlemon/rspec-wait) - Wait for conditions in RSpec.\n- [super-diff](https://github.com/mcmire/super_diff) - A more helpful way to view differences between complex data structures in RSpec.\n- [test-prof](https://github.com/test-prof/test-prof) - Tools to analyze test suite performance +helpers to write faster tests.\n- [vcr](https://github.com/vcr/vcr) - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.\n- [with_model](https://github.com/Casecommons/with_model) - Dynamically build an Active Record model (with table) within a test context.\n- [yardspec](https://github.com/r7kamura/yardspec) Run RSpec examples embedded in yard\n- [zapata](https://github.com/Nedomas/zapata) - An Automatic Automated Test Writer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDarhazer%2Fawesome-rspec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDarhazer%2Fawesome-rspec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDarhazer%2Fawesome-rspec/lists"}