我的模型看起来像这样:
class User
include Mongoid::Document
field :email
validate :email, presence: true, uniqueness: true
end
我的测试看起来像......
it { User.new.should_not be_valid }
it { FactoryGirl.build(:user).should be_valid }
it { should validate_presence_of :email }
it { should validate_uniqueness_of :email }
在调用.valid?
方法时,这两个都想要访问数据库。有什么事情我可以抽象出来吗?唯一性验证器已经过很多其他人的彻底测试,因此上面的最后一行对我来说已经足够了。
如果我必须在模型规范中运行数据库,那就没什么大不了的了,但如果可能的话我宁愿避免使用它。
答案 0 :(得分:0)
.valid?方法应该仍然可以使用ActiveModel,我不太确定Mongoid包含什么,但ActiveModel你必须有include ActiveModel:Validations
这可能不太清楚,但ActiveModel不会尝试命中数据库。