Railsエラーノート

ゼロからWebサービスを作るRuby on Rails学習ブログ

検証に対するテストで「validする」の意味

Railsチュートリアル第6章の「name属性の検証に対する、失敗するテスト。」で、

describe "when name is not present" do
    before { @user.name = " " }
    it { should_not be_valid }
  end


のところで理解に苦しんだというかハマった。
Yasukawa氏のスクリーンキャストでは、

実際のWebアプリケーションでも名前になんらかの文字を入れないといけないという意味では" "このような空白の文字列では許容しがたい文字列なので、エラーとして返すべき。
というテストを書いているということです。

このような空白の文字列はvalidするべきではない。ちゃんとfalseが返るべきだ。というテストになります。

と説明している。
僕はvalidする意味を履き違えていた。


validは直訳すると
1.根拠の確実な,確かな,正当な,妥当な.
2.有効な,効力のある,効果的な
という意味がある。

もちろんvalidateのvalidなんだけど。
なのでこのテストは、
" "こんな空白の場合は「有効にするべきではない」というテストを書いているということなになる。


スッとしました。