如何在帮助程序规范中设置测试请求

时间:2016-11-24 17:16:16

标签: ruby-on-rails rspec

tl; dr:如何测试依赖于当前请求URI的帮助程序?

我正在尝试在我的Helper规范中对nav_link方法进行测试,该方法在当前页面上提供了active类的链接:

# app/helpers/application_helper.rb
module ApplicationHelper
  def nav_link(link_text, link_path, options = {})
    active = current_page?(link_path) ? 'active' : ''
    link_to link_text, link_path, class: 'nav-item nav-link ' << active, **options
  end
end

为了做到这一点,我需要为每个测试设置正确的请求,这样我就可以测试该方法是否提供了active类的链接:

# spec/helpers/application_helper_spec.rb
describe ApplicationHelper do
  describe "#nav_link" do    
    it 'sets the active link class' do

      # "set here the request to users_path"

      expect(helper.nav_link('Users', users_path)).to include('active')
    end
end

到目前为止,我已尝试使用featurerequest规范类型,但无法找到在helper规范上实现此功能的方法,因此我可以测试隔离函数调用,它的返回。

使用active_link_to gem实现了主动链接功能的解决方案,但仍然存在关于测试的问题。

0 个答案:

没有答案