Shoulda helps you write more understandable, maintainable Rails-specific tests using Minitest.
shoulda gem doesn't contain any code of its own; it actually brings
behavior from two other gems:
See the READMEs for these projects for more information.
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@example.com").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
should methods come from Shoulda Context; matchers
allow_value) come from Shoulda Matchers.
Shoulda is tested and supported against Ruby 2.2-2.4, Rails 4.2-5.0, and Minitest 5.
Shoulda is open source, and we are grateful for everyone who's contributed so far.
If you'd like to contribute, please take a look at the instructions for installing dependencies and crafting a good pull request.
Shoulda follows Semantic Versioning 2.0 as defined at http://semver.org.
Shoulda is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.