使用RSpec测试Rails辅助方法时,如何在params哈希中设置值?

海上本地

在带有RSpec 3.1的Ruby on Rails 4中,如何params在测试Rails助手方法时设置哈希

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

spec / helpers / books_helper_spec.rb:

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

app / helpers / books_helper.rb:

BooksHelper
  def title_helper
    if params[:search]
      "Books related to #{params[:search]}"
    else
      "All Books"
    end
  end
end
戴夫·史威斯古斯

在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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Rails集成测试中使用辅助方法?

如何在RSpec中使用辅助方法?

需要在RSpec中按值对哈希排序的测试方法

如何编写rspec测试以测试控制器中是否有可用的辅助方法?

rspec:使用Rails中的to_json方法扩展哈希

如何在将哈希作为参数传递给 ruby 方法时设置默认值?

如何在Rails 5中使用RSpec测试模型中的关联?

Rails/Rspec - 如何在控制器测试中存根模型方法?

如何使用Rspec来测试密钥是否存在于包含哈希数组的哈希中

Rails / AR –如何在rspec中测试:: update(id,attribute)

如何在Rails 5中使用Rspec测试Wash_out控制器

如何在Rails上使用rspec和capybara测试API?

无法使用RSpec / Rails测试SessionsController规范中POST #create中设置的session [:user_id]值

如何在Ruby on Rails中的params数组中更改值?

如何在Rails中的ruby中实现哈希值

如何在Ruby哈希中动态设置嵌套键的值

如何在Rails中设置标志值?

使用不带辅助工具的rspec在Rails模型中测试字段唯一性的验证

如何在带有RSpec 3.4的视图规范中存根控制器辅助方法?

RSpec-如何在辅助对象上正确使用double和stub方法?

如何在rspec中测试方法调用的顺序?

在使用Minitest的Rails中,如何设置RuboCop在每次使用rake运行测试时自动运行?

使用辅助方法为 Java 对象生成测试数据时提供默认值

使用rspec如何测试按正确顺序接收到哈希参数的方法?

在Rails控制台中使用辅助方法时,确定Label方法在Rails中的源位置

尝试在Rails中设置rspec测试时获取未初始化的常量Faker :: String

如何在rspec中调用模块方法,并设置当前模块

RSpec:如何测试哈希数组中密钥的存在?

Rails-在辅助方法中使用gsub时的无效值表达式