所以我一直在为此绞尽脑汁,也许你们中的一些人可能对如何为这个用户模型进行正确的单元测试有更好的想法。我的基本单元测试是这样的。
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
在Clearance中有更好的方法吗?gem让你可以通过任意分配电子邮件和密码来创建这样的用户,这很好,但我想也许我不应该这么做。
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)