我正在将一个使用 RSpec 成功测试辅助方法的应用程序移植到 MiniTest。下面是application_helper.rb中的方法
def active_controller?(controller_name)
params[:controller] == controller_name ? 'active' : nil
end
它是在 View 中用来帮助在 Controller 中突出显示事件 Controller 的东西。
下面是助手的(不工作)测试。
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
问题是我无法弄清楚如何访问(或 stub )请求参数以包含能够断言该方法返回 true 的 Controller 。
有什么想法吗?
最佳答案
尝试使用 pry gem 来查看 @request
、@request.params[:controller]
和 params[:controller]
实际上返回。
断言 active_controller?('dashboard')
正在根据 params[:controller]
检查 'dashboard',目前为 nil,因为您只分配了 @ request.params[:controller]
在你的测试中。
如果测试是:
test 'active_controller? returns correct value' do
params[:controller] = 'dashboard'
assert active_controller?('dashboard')
end
断言正在将“仪表板”与已分配的 params[:controller]
进行比较。
关于ruby-on-rails - Minitest - 测试使用请求参数的辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30699460/