0

我有一个看起来像这样的模型:

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?调用方法时访问数据库。有什么办法可以抽象出来吗?唯一性验证器已经被很多其他人彻底测试过,所以上面的最后一行对我来说已经足够好了。

如果我必须在模型规范期间运行数据库,这没什么大不了的,但如果可能的话,我宁愿避免它。

4

1 回答 1

0

.valid? 方法应该仍然适用于 ActiveModel,我不太确定 Mongoid 包括什么,但你必须有 ActiveModelinclude ActiveModel:Validations

这可能还不清楚,但 ActiveModel 不会尝试访问数据库。

于 2013-01-14T01:46:24.897 回答