params
哈希的值?我想设置params[:search] = 'my keyword search'
以便在我的帮助方法中使用,然后在it
示例块中调用它。
require 'rails_helper'
describe BooksHelper do
describe "#page_title_helper" do
let(:params) { {search: 'my keyword search'} }
it "should read the params hash" do
expect(helper.params[:search]).to eq "my keyword search"
end
end
end
BooksHelper
def title_helper
if params[:search]
"Books related to #{params[:search]}"
else
"All Books"
end
end
end
答案 0 :(得分:16)
在RSpec 3中,params哈希在控制器对象上可用,它在辅助规范中可用。因此,例如,要获得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