2010-08-31 4 views
1

Voici mon test.Problème lors du test des validations avec Shoulda

class AlertSettingTest < ActiveSupport::TestCase 
    context "For ALL Alert Settings" do 
    setup do 
    @alert = AlertSetting.create({ :alert_type_id=>'1',:name => 'xxx'}) 
    end 
    subject { @alert } 
    should_belong_to :alert_type 
    should_validate_presence_of :name 
    end 
end 

Voici mon modèle.

class AlertSetting < ActiveRecord::Base 
    belongs_to :alert_type 

    validates_presence_of :name, :message => "Alert name can't be blank." 
    validates_presence_of :alert_type_id, :message => "Please select valid Alert Type." 
end 

Et je reçois des erreurs devraient inclure « ne peut pas être vide » lorsque le nom est réglé à zéro, obtenez des erreurs: Nom de famille alerte ne peut pas être vide. (néant)

Je ne comprends pas. Pourquoi? Merci!

Répondre

1

Eh bien. Si je commente la partie: message dans mes validations à l'intérieur de mon modèle, le script de test RUNS! Maintenant, si quelqu'un pouvait expliquer pourquoi c'est le cas, ce serait formidable. Une chance est-elle un bug de shoulda?

1

Si vous changez le message, vous devez dire à ce sujet Shoulda:

should_validate_presence_of(:name).with_message(/can.t be blank/) 
+1

Je crois que cela devrait être « devrait validate_presence_of » (avec un espace après devrait), et non « should_validate_presence_of » –

Questions connexes