rails3, rspec2 ActiveRecord#changes 规格中的错误

Posted

技术标签:

【中文标题】rails3, rspec2 ActiveRecord#changes 规格中的错误【英文标题】:rails3, rspec2 ActiveRecord#changes error in specs 【发布时间】:2011-05-19 19:07:47 【问题描述】:

我正在将我的 rails 2 应用程序升级到 rails 3。我在测试套件中使用 rspec、should 和 factory girl。

一个特定的模式导致了一个错误,我很难研究和解决。

  # cart controller spec
  @cart = Factory.build(:cart, :payment_status => "authorized", :user_id => @user.id)
  2.times  Factory(:cart_item, :cart => @cart) 

我得到这个规范失败:

changes is defined by ActiveRecord
./spec/controllers/cart_controller_spec.rb:41
./spec/controllers/cart_controller_spec.rb:41:in `times'
./spec/controllers/cart_controller_spec.rb:41

调用#times 方法是安全的(当我输入2.times puts "hi" 时不会引发错误),但我无法看到#changes 是如何在此处被调用的。

【问题讨论】:

【参考方案1】:

您有一个名为“更改”的栏目吗?我怀疑它与 ActiveRecord 冲突,您可能需要重命名它。

【讨论】:

另见***.com/questions/1510875/…

以上是关于rails3, rspec2 ActiveRecord#changes 规格中的错误的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3,RSpec 2.5:使用带有命名范围的 should_receive 或 stub_chain

如何显示 RSpec 测试生成的 SQL 查询日志?

在规范中使用描述/它优于功能/场景的优势? (除了语法糖)

如何检查实际使用的模板文件

RSpec2 错误代码测试

ruby 1.9 和 RSpec2 有啥好的突变测试工具吗?