Piszę niektóre testy jednostkowe, aby upewnić się, że model użytkownika nie może mieć hasła o długości 8 znaków: <.Testowanie sprawdzania poprawności hasła za pomocą RSpec
zacząłem z modelem 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
a 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 faktycznie przetestować poprawności, to tylko testy, które mój fabryka miała hasło> = 8 znaków.
Czy jest to dobry sposób na zrobienie tego innego niż testowanie poprawnego? metoda dla haseł 0-7 znaków?
Moja teoria jest taka, że jeśli testuję tylko 7 znaków, a ktoś przypadkowo twarde kody, że 4-znakowe hasła są w porządku, przejdzie to sprawdzanie poprawności, ale tak naprawdę nie jest to zamierzone. Może istnieć jakiś kod, w którym to 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 zatem dopuszczenie hasła 4 jest nieprawidłowe.
W takim 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 przetestować takie sytuacje z TDD.
Nie rozumiem problemu .. – apneadiving