thoughtbot/shoulda
thoughtbot/shoulda has 2,202 GitHub stars and 182 forks. GitHot measured -1 stars in 24 hours. Last checked 2026-11-06 23:08 UTC. Last push 2025-05-23.
Makes tests easy on the fingers and the eyes
Measured star growth
- in 24h
- -1
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalShoulda

Shoulda helps you write more understandable, maintainable Rails-specific tests under Minitest and Test::Unit.
Quick links
📢 See what's changed in recent versions.
Overview
As an umbrella gem, the shoulda gem doesn't contain any code of its own but
rather brings in behavior from two other gems:
For instance:
require "test_helper"
class UserTest < ActiveSupport::TestCase
context "associations" do
should have_many(:posts)
end
context "validations" do
should validate_presence_of(:email)
should allow_value("[email protected]").for(:email)
should_not allow_value("not-an-email").for(:email)
end
context "#name" do
should "consist of first and last name" do
user = User.new(first_name: "John", last_name: "Smith")
assert_equal "John Smith", user.name
end
end
end
Here, the context and should methods come from Shoulda Context; matchers
(e.g. have_many, allow_value) come from Shoulda Matchers.
See the READMEs for these projects for more information.
Compatibility
Shoulda is tested and supported against Ruby 3.0+, Rails 6.1+, RSpec 3.x, Minitest 4.x, and Test::Unit 3.x.
- For Ruby < 3 and Rails < 6.1 compatibility, please use v4.0.0.
Versioning
Shoulda follows Semantic Versioning 2.0 as defined at http://semver.org.
Team
Shoulda is currently maintained by Pedro Paiva. Previous maintainers include Elliot Winkler, Jason Draper, Gabe Berke-Williams, Ryan McGeary, Joe Ferris, Dan Croaky, and Tammer Saleh.
Copyright/License
Shoulda is copyright © Tammer Saleh and thoughtbot, inc. It is free and opensource software and may be redistributed under the terms specified in the LICENSE file.
About thoughtbot
This repo is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects. We are available for hire.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,673 starspublic-apis/public-apis
A collective list of free APIs
496,921 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
440,017 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,107 stars