Ruby on rails RSpec:使用FactoryGirl测试ActiveRecord钩子的最佳实践
我有一个模型,当触发*after_create*钩子时,它应该将自己设置为uuid。 由于我还使用FactoryGirl在规格内创建模型,所以我正在努力解决如何测试挂钩的问题Ruby on rails RSpec:使用FactoryGirl测试ActiveRecord钩子的最佳实践,ruby-on-rails,rspec,hook,factory-bot,rails-activerecord,Ruby On Rails,Rspec,Hook,Factory Bot,Rails Activerecord,我有一个模型,当触发*after_create*钩子时,它应该将自己设置为uuid。 由于我还使用FactoryGirl在规格内创建模型,所以我正在努力解决如何测试挂钩的问题 class User < ActiveRecord::Base after_create: attach_uuid def attach_uuid self.uuid = SecureRandom.uuid end end 但显然在save调用之后,钩子和方法*attach_uuid*没有被触
class User < ActiveRecord::Base
after_create: attach_uuid
def attach_uuid
self.uuid = SecureRandom.uuid
end
end
但显然在save调用之后,钩子和方法*attach_uuid*没有被触发。有什么想法吗?创建后如何测试这种行为?您应该在rspec中重新加载对象
user = FactoryGirl.build(:user, guid: nil)
user.save!
user.reload.uuid.should_not be_nil
user = FactoryGirl.build(:user, guid: nil)
user.save!
user.reload.uuid.should_not be_nil