我遇到了一个错误,我认为可以通过以下方式解决 运行测试时禁用acts_as_audited,或者至少进行 stub 审计清理程序中的 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中,我尝试 stub AuditSweeper.current_user、template.current_user和controller.current_user以返回模拟用户模型。没有工作。
感谢任何帮助。谢谢!
最佳答案
看起来好像正在调用的对象 current_user 之一为零。所以 stub 当前用户是行不通的。您需要追踪 nil 对象并确保它已初始化。
关于ruby-on-rails - Ruby on Rails : RSpec and Acts As Audited (disabling acts_as_audited while testing?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054694/