私はUserモデルが8文字のパスワードを持つことができないようにいくつかのユニットテストを書いています。RSpecを使ってパスワードの長さを検証する
私はUserモデルで開始しました:私は、これは実際に私の検証をテストしていないことに気づいたしかし、それだけでは私のテスト
describe User do
subject { FactoryGirl.build :user }
its(:password) { should have_at_least(8).items }
end
:
class User < ActiveRecord::Base
...
validates :password, :length =>{
:minimum => 90,
:too_short => "password is too short, must be at least %{count} characters"
}, :on => :create
end
そしてuser_spec.rbテスト工場のパスワードは8文字以上です。
有効なテスト以外の方法がありますか? 0-7文字のパスワードのためのメソッド?
私の理論では、私は7文字しかテストしておらず、誤って4文字のパスワードが妥当であるというコードを書いていると、これは検証に合格しますが、意図したものではありません。 パスワードが8文字以上(他の状況では真実ではない可能性がある)に依存するコードがいくつか存在する可能性があるため、パスワード4を許可するのが間違っています。
この場合、モデルでパスワードの検証を変更した人は、何か間違っていることを知らないでしょう。
このような状況を適切にTDDでテストする方法を知りたいだけです。
は、私はあなたの問題を理解していない... – apneadiving