加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Kaminari和Capybara冲突

发布时间:2020-12-17 02:36:46 所属栏目:百科 来源:网络整理
导读:我似乎在capybara的页面方法和Kaminari的页面方法之间存在某种冲突. 这就是我猜想的,无论如何,这是错误: Failure/Error: before { sign_in_as user } ActionView::Template::Error: wrong number of arguments (1 for 0) # ./app/models/feed.rb:9:in `micr
我似乎在capybara的页面方法和Kaminari的页面方法之间存在某种冲突.

这就是我猜想的,无论如何,这是错误:

Failure/Error: before { sign_in_as user }
     ActionView::Template::Error:
       wrong number of arguments (1 for 0)
     # ./app/models/feed.rb:9:in `microposts'
     [Rest of the backtrace]

代码示例:

class Feed
    def microposts(opts = { urgent: false })                                                                
      urgent = opts[:urgent]                                                                                
      p Microposts.where(id: 1).page # <Capybara::Session>                                                                         
      p Microposts.where(id: 1).page(1) # Error
    end
end

如果我删除分页,测试工作正常.

我不明白这是怎么可能的,我猜Capybara将“页面”方法添加到Object范围,但是当Kaminari将其页面方法添加到ActiveRecord :: Base时(如果我没记错),它应该覆盖Capybara的一个.

我没有看到有人遇到这种麻烦,怎么可能?

谢谢.

解决方法

我和Capybara 2.x有同样的问题

我的功能规格位于spec / feature目录中.我从阅读Capybara文档中了解到,如果您使用features目录,则无需在spec_helper中包含Capybara :: DSL.它已经包括在内了.

如果你在spec_helper中包含Capybara :: DSL会发出警告,它会污染全局命名空间,这正是为什么这是个坏主意!

Check out this rspec-rails page on Capybara for details

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读