У меня есть такая модель:
class User < ActiveRecord::Base
validates_length_of :name, :in => (2..5)
end
Я хочу проверить эту проверку:
it "should not allow too short name" do
u = User.new(:name => "a")
u.valid?
u.should have(1).error_on(:name)
end
Но тогда он не проверяет, какой тип ошибки был установлен на name
. Я хочу знать, было ли это too_short
, too_long
или, возможно, какая-то другая проверка не удалась.
Я могу посмотреть текст сообщения в массиве ошибок, например:
u.errors[:name].should include(I18n.t("activerecord.errors.models.user.attributes.name.too_short"))
Но это не получится, если я установлю activerecord.errors.messages.too_short
в файле локали вместо сообщения для конкретной модели.
Итак, можно ли проверить, какая ошибка произошла?