Проверка правильности длины пароля с помощью 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.

Ответы на вопрос(2)

Ваш ответ на вопрос