Ruby on Rails:RSpec和Acts As Audited(在测试时禁用acts_as_audited?)

时间:2010-01-13 05:42:39

标签: ruby-on-rails ruby rspec testing acts-as-audited

我一直在收到错误,我认为可以解决 运行测试时禁用acts_as_audited,或者至少是stubing 审计清扫工中的current_user。错误如下。你觉得我怎么样? 应该做什么?

NoMethodError in 'Order should create a new instance given valid attributes'
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.current_user
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:73:in `send'
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:73:in `current_user'
/home/ramon/rails/app/vendor/plugins/acts_as_audited/lib/acts_as_audited/audit_sweeper.rb:61:in `after_create'
./spec/models/order_spec.rb:13:

在spec / models / order_spec.rb中,我尝试将AuditSweeper.current_user,template.current_user和controller.current_user存根,以返回模拟用户模型。没有用。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

看起来正在调用其中一个对象current_user是nil。如此存在当前用户将无法正常工作。你需要追踪nil对象并确保它已初始化。