module Shoulda::ActiveRecord::Assertions
def assert_bad_value(object_or_klass, attribute, value,
product = Product.new(:tangible => true)
assert_bad_value(User, :email, "invalid")
instead.
the same name as the class (underscored), that object will be used
instantiated before the assertion. If an instance variable exists with
If a class is passed as the first argument, a new object will be
assert_bad_value(User.new, :ssn, "123", /length/)
assert_bad_value(User.new, :email, "invalid")
contained within the list of errors for that attribute.
value by making sure the error_message_to_expect is
Asserts that an Active Record model invalidates the passed
def assert_bad_value(object_or_klass, attribute, value, error_message_to_expect = nil) object = get_instance_of(object_or_klass) matcher = allow_value(value). for(attribute). with_message(error_message_to_expect) assert_rejects(matcher, object) end
def assert_good_value(object_or_klass, attribute, value, error_message_to_avoid = nil)
product = Product.new(:tangible => false)
assert_good_value(User, :email, "user@example.com")
instead.
the same name as the class (underscored), that object will be used
instantiated before the assertion. If an instance variable exists with
If a class is passed as the first argument, a new object will be
assert_good_value(User.new, :ssn, "123456789", /length/)
assert_good_value(User.new, :email, "user@example.com")
contained within the list of errors for that attribute.
value by making sure the error_message_to_avoid is not
Asserts that an Active Record model validates with the passed
def assert_good_value(object_or_klass, attribute, value, error_message_to_avoid = nil) object = get_instance_of(object_or_klass) matcher = allow_value(value). for(attribute). with_message(error_message_to_avoid) assert_accepts(matcher, object) end
def assert_save(obj)
Asserts that the given object can be saved
def assert_save(obj) assert obj.save, "Errors: #{pretty_error_messages obj}" obj.reload end
def assert_valid(obj)
Asserts that the given object is valid
def assert_valid(obj) assert obj.valid?, "Errors: #{pretty_error_messages obj}" end