Railstutorial.org Valider des tests de présence
-
29-10-2019 - |
Question
J'ai travaillé sur les tutoriels à RailStUtorial.org, et j'ai été un peu perplexe par le code de l'auteur pour la section - 6.2.1 validant la présence.
Dans le modèle d'utilisateur, le tutoriel ajoute validates :name, :presence => true
. Assez simple.
Lorsque l'auteur choisit d'écrire le test RSpec, il fait quelque chose que je pensais être un peu étrange.
describe User do
before(:each) do
@attr = { :name => "Example User", :email => "user@example.com" }
end
.
.
.
it "should require a name" do
no_name_user = User.new(@attr.merge(:name => ""))
no_name_user.should_not be_valid
end
end
Pourquoi passer par la peine de fusionner une chaîne vierge pour @attr
Quand on peut se débarrasser de la: chaque instruction de bloc et écrivez simplement:
it "should require a name" do
no_name_user = User.new(:name => "", :email => "user@example.com")
no_name_user.should_not be_valid
end
Je sais que l'auteur utilise le @attr
Variable pour valider également la présence de l'adresse e-mail, ce qui indique pourquoi il a utilisé l'instruction de bloc - pour moi, il est plus logique de suivre la structure du deuxième citation de bloc. Pourtant, j'ai le sentiment qu'il me manque quelque chose ici.
Une autre explication qui m'a traversé l'esprit est qu'il aide à utiliser le @attr
Structure lorsqu'il y a beaucoup de clés à saisir, par opposition à ce cas plutôt simpliste de seul nom et e-mail.
Quelqu'un a-t-il une contribution?
Pas de solution correcte