Minitest - 测试使用请求参数的辅助方法
Minitest - testing helper method that uses request params
我正在将使用 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
问题是我无法弄清楚如何访问(或存根)请求参数以包含能够断言方法 returns true 的控制器。
有什么想法吗?
尝试使用撬棒 gem 来查看 @request
、@request.params[:controller]
和 params[:controller]
实际上 return。
断言 active_controller?('dashboard')
正在对照 params[:controller]
检查 'dashboard',目前为零,因为您只在测试中分配了 @request.params[:controller]
。
如果测试是:
test 'active_controller? returns correct value' do
params[:controller] = 'dashboard'
assert active_controller?('dashboard')
end
断言正在将 'dashboard' 与已分配的 params[:controller]
进行比较。
我正在将使用 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
问题是我无法弄清楚如何访问(或存根)请求参数以包含能够断言方法 returns true 的控制器。
有什么想法吗?
尝试使用撬棒 gem 来查看 @request
、@request.params[:controller]
和 params[:controller]
实际上 return。
断言 active_controller?('dashboard')
正在对照 params[:controller]
检查 'dashboard',目前为零,因为您只在测试中分配了 @request.params[:controller]
。
如果测试是:
test 'active_controller? returns correct value' do
params[:controller] = 'dashboard'
assert active_controller?('dashboard')
end
断言正在将 'dashboard' 与已分配的 params[:controller]
进行比较。