Проверка правильности длины пароля с помощью RSpec
я пишу некоторые модульные тесты, чтобы гарантировать, что модель пользователя не может иметь пароль < 8 символов в длину.
Я начал с модели пользователя:
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:
describe User do
subject { FactoryGirl.build :user }
its(:password) { should have_at_least(8).items }
end
Однако я понял, что это нена самом деле проверить мою проверку, он просто проверяет, что у моей фабрики был пароль>= 8 символов
Есть ли хороший способ сделать это, кроме проверки действительного? метод для паролей 0-7 символов?
Моя теория состоит в том, что если я проверю только 7 символов и кто-то случайно жестко закодирует, что 4-символьные пароли в порядке, это пройдет проверку, но это не так.т действительно то, что было задумано. Может быть еще какой-то код, в котором это зависит от того, что пароль состоит из более чем 8 символов (маловероятно, но в других ситуациях может быть правдой), и поэтому допустимо вводить пароль из 4 символов.
В этом случае человек, который изменил проверку пароля в модели, выигралне знаю, что ония сделал что-то не так.
Мне просто хотелось бы знать, как правильно тестировать подобные ситуации с помощью TDD.