Minitest - 使用请求参数

时间:2015-06-07 23:20:39

标签: ruby-on-rails ruby minitest

我正在移植一个应用程序,它成功地使用RSpec来测试帮助器方法到MiniTest。以下是application_helper.rb

中的方法
def active_controller?(controller_name)
  params[:controller] == controller_name ? 'active' : nil
end

在视图中使用它可以帮助控制器中的活动控制器突出显示。

以下是帮助者的(不工作)测试。

require 'test_helper'

class ApplicationHelperTest < ActionView::TestCase

test 'active_controller? returns correct value' do
    @request = ActionController::TestRequest.new
    @request.params[:controller] = 'dashboard'
    assert active_controller?('dashboard')
  end
end

问题是我无法弄清楚如何访问(或存根)请求参数以包含控制器以断言该方法返回true。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用pry gem查看@request@request.params[:controller]params[:controller]实际返回的内容。 断言active_controller?('dashboard')正在针对params[:controller]检查“信息中心”,目前为零,因为您在测试中仅指定了@request.params[:controller]。 如果测试是:

test 'active_controller? returns correct value' do
  params[:controller] = 'dashboard'
  assert active_controller?('dashboard')
end

断言是将“仪表板”与已分配的params[:controller]进行比较。