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

时间:2014-08-01 12:24:26

标签: ruby-on-rails ruby rspec capybara rspec-rails

我有一个名为yearly_csv的动作。在这个动作中,我执行两个操作,如需求和供应。

def yearly_csv
   if demand == 'true'
       demand_csv
   else
       supply_csv
   end
end

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

2 个答案:

答案 0 :(得分:11)

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

describe YourController
  describe '#yearly_csv'
    # set up
    get :yearly_csv, demand: 'true'
    # assert results
  end
end

答案 1 :(得分:5)

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

get :yearly_csv, params: { demand: 'true' }