如何在Rails控制器动作的RSpec测试中指定查询字符串?

Kan*_*nti 7 ruby rspec ruby-on-rails capybara rspec-rails

我有一个叫做的动作yearly_csv.在这个动作中,我执行两个操作,如需求和供应.

def yearly_csv
   if demand == 'true'
       demand_csv
   else
       supply_csv
   end
end
Run Code Online (Sandbox Code Playgroud)

我在视图中有两个单选按钮来选择其中一个操作.现在我想在RSpec中单独测试每个操作.例如,一个供应规格和另一个需求规格.我的问题是如何将单选按钮值传递给yearly_csv动作(get)?

Dav*_*uth 12

在RSpec控制器规范中,将查询参数指定为哈希参数get:

describe YourController
  describe '#yearly_csv'
    # set up
    get :yearly_csv, demand: 'true'
    # assert results
  end
end
Run Code Online (Sandbox Code Playgroud)


Sea*_*bry 9

在RSpec的较新版本中,必须使用params键声明查询字符串参数:

get :yearly_csv, params: { demand: 'true' }
Run Code Online (Sandbox Code Playgroud)