私はrailstutorial.orgでチュートリアルを行ってきましたが、私は著者のコードのセクション6.2.1の存在を検証するのに少し不足していました。Railstutorial.org存在テストの検証
ユーザモデルでは、このチュートリアルではvalidates :name, :presence => true
が追加されています。十分に簡単です。
著者がrspecテストを書くことを選択すると、彼は私が少し奇妙だと思ったことをします。
describe User do
before(:each) do
@attr = { :name => "Example User", :email => "[email protected]" }
end
.
.
.
it "should require a name" do
no_name_user = User.new(@attr.merge(:name => ""))
no_name_user.should_not be_valid
end
end
なぜ1を取り除くことができるとき@attr
に空白文字列をマージする手間を経る:各ブロック文を単に書く:
it "should require a name" do
no_name_user = User.new(:name => "", :email => "[email protected]")
no_name_user.should_not be_valid
end
私は著者が@attr
変数を使用していることを知っています電子メールアドレスの存在を検証することもできます。これは、なぜブロックステートメントを使用したかの指標の1つです。第2ブロック引用の構造に従う方が理にかなっています。それでも、私はここに欠けているものがあるという気持ちがあります。
私は、名前と電子メールだけの単純な場合とは対照的に、多くのキーが入力されている場合に@attr
構造を使用することをお勧めします。
誰でも入力がありますか?