Оформление юнит-теста в модели пользователя?

Так что я ломал голову над этим, и, возможно, некоторые из вас могли бы иметь лучшее представление о том, как выполнить надлежащий модульный тест для этой модели пользователя. Мой базовый юнит-тест выглядит так.

test "should not save without name" do
  user = User.new
  user.email = "test@test.com"
  user.password = "letmein"
  assert !user.save
end

Этот тест проходит с этой моделью.

class User < ActiveRecord::Base
  include Clearance::User

  validates :name, presence: true

  has_and_belongs_to_many :contests
end

Есть ли лучший способ сделать это в оформлении? Хорошо, что жемчужина позволяет вам создавать таких пользователей на лету, произвольно назначая электронную почту и пароль, но я думаю, что, возможно, мне не стоило этого делать.

1 ответ

Решение
user = User.new(:email => "test@test.com", :password => "letmein")

а потом,

assert !user.valid?

или же

user.should_not be_valid

или же

expect { user.save }.to change(User, :count).by(0)
Другие вопросы по тегам