Ruby on rails 在使用RSpec测试Rails助手方法时,如何在params散列中设置值? 在RubyonRails4中,使用RSpec3.1,在测试Rails助手方法时,如何设置paramshash的值?

Ruby on rails 在使用RSpec测试Rails助手方法时,如何在params散列中设置值? 在RubyonRails4中,使用RSpec3.1,在测试Rails助手方法时,如何设置paramshash的值?,ruby-on-rails,ruby-on-rails-4,rspec,rspec-rails,rspec3,Ruby On Rails,Ruby On Rails 4,Rspec,Rspec Rails,Rspec3,我想设置params[:search]=“my keyword search”以在我的助手方法中使用,然后从it示例块中调用它 spec/helpers/book\u helper\u spec.rb: app/helpers/books\u helper.rb: 在RSpec 3中,参数散列可在控制器对象上使用,该对象在助手规范中可用。例如,要获取params[:search],可以说 controller.params[:search] 这是一个扩展的例子,从问题扩展而来 context "

我想设置
params[:search]=“my keyword search”
以在我的助手方法中使用,然后从
it
示例块中调用它

spec/helpers/book\u helper\u spec.rb: app/helpers/books\u helper.rb:
在RSpec 3中,参数散列可在控制器对象上使用,该对象在助手规范中可用。例如,要获取
params[:search]
,可以说
controller.params[:search]

这是一个扩展的例子,从问题扩展而来

context "with a params[:search]" do
  it "returns the search term" do
    controller.params[:search] = 'Test Search'
    expect(helper.title_helper).to eq("Books related to #{params[:search]}".html_safe)
    expect(helper.title_helper).to eq("Books related to Test Search".html_safe)
    expect(helper.title_helper).not_to eq("Books related to Bad Value".html_safe)
  end
end
BooksHelper
  def title_helper
    if params[:search]
      "Books related to #{params[:search]}"
    else
      "All Books"
    end
  end
end
context "with a params[:search]" do
  it "returns the search term" do
    controller.params[:search] = 'Test Search'
    expect(helper.title_helper).to eq("Books related to #{params[:search]}".html_safe)
    expect(helper.title_helper).to eq("Books related to Test Search".html_safe)
    expect(helper.title_helper).not_to eq("Books related to Bad Value".html_safe)
  end
end