61 votes

Correspondants Shoulda/RSpec - validation conditionnelle

Dans mon code, j'avais la validation suivante avec les correspondances Shoulda, qui fonctionne bien :

it { should validate_presence_of(:name) }

Dans mon modèle, j'ai ajouté la condition à ma validation :

validates_presence_of :name, :if => eligible?

Est-il possible de le refléter dans les validations ?

J'ai essayé de regarder documentation pour les "shoulda matchers", mais je n'ai pas réussi à trouver la solution.

Merci beaucoup !

127voto

zetetic Points 29261

Il ne semble pas que shoulda_matchers fasse cela, mais il est assez facile de l'écrire soi-même: :

  context "if eligible" do
    before { subject.stub(:eligible?) { true } }
    it { should validate_presence_of(:name) }
  end

  context "if ineligible" do
    before { subject.stub(:eligible?) { false } }
    it { should_not validate_presence_of(:name) }
  end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X