2012-10-29 2 views
0

j'ai un modèle qui ressemble à ceci:sans base de données unique validation de spécifications du modèle

class User 
    include Mongoid::Document 

    field :email 

    validate :email, presence: true, uniqueness: true 
end 

Et je un test qui ressemble à ...

it { User.new.should_not be_valid } 
it { FactoryGirl.build(:user).should be_valid } 
it { should validate_presence_of :email } 
it { should validate_uniqueness_of :email } 

Ces deux veulent frapper la base de données lorsque la méthode .valid? est appelée. Y a-t-il quelque chose que je peux résumer? Le validateur d'unicité a été testé par beaucoup d'autres personnes, donc la dernière ligne ci-dessus est assez bonne pour moi.

Pas si grave si je dois exécuter une base de données pendant les spécifications du modèle, mais je préfère l'éviter si possible.

Répondre

0

Le .valid? La méthode devrait toujours fonctionner avec ActiveModel, je ne suis pas sûr de ce que comprend Mongoid mais ActiveModel vous devez avoir include ActiveModel:Validations

Cela peut ne pas avoir été clair, mais ActiveModel n'essaie pas de frapper la base de données.

Questions connexes