Testowanie sprawdzania długości hasła za pomocą RSpec

Piszę testy jednostkowe, aby upewnić się, że model użytkownika nie może mieć hasła o długości <8 znaków.

Zacząłem od modelu użytkownika:

class User < ActiveRecord::Base
  ...
  validates :password, :length =>{
    :minimum => 90,
    :too_short => "password is too short, must be at least %{count} characters"
  }, :on => :create

end

I test user_spec.rb:

describe User do
  subject { FactoryGirl.build :user }

 its(:password) { should have_at_least(8).items }
end

Jednak zdałem sobie sprawę, że to nie testuje mojej walidacji, tylko sprawdza, czy moja fabryka ma hasło> = 8 znaków.

Czy jest dobry sposób na wykonanie tego innego niż testowanie poprawnego? metoda haseł 0-7 znaków?

Moja teoria jest taka, że ​​jeśli testuję tylko 7 znaków i przypadkowo twarde kody, które są 4-znakowe, są OK, to przejdzie walidację, ale tak naprawdę nie jest zamierzone. Może istnieć inny kod, w którym zależy od hasła składającego się z więcej niż 8 znaków (mało prawdopodobne, ale w innych sytuacjach może być prawdą), a więc dopuszczenie hasła 4 jest nieprawidłowe.

W tym przypadku osoba, która zmieniła weryfikację hasła w modelu, nie będzie wiedziała, że ​​zrobiła coś złego.

Chciałbym tylko wiedzieć, jak poprawnie testować takie sytuacje w TDD.

questionAnswers(2)

yourAnswerToTheQuestion