ruby-on-rails - Minitest - 测试使用请求参数的辅助方法

标签 ruby-on-rails ruby minitest

我正在将一个使用 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/

相关文章:

ruby-on-rails - Rails 中的 jQuery ajax 调用?

ruby-on-rails - Rails 应用程序中的 AssociationTypeMismatch(预期对象,获得 HashWithIn DifferentAccess)

ruby-on-rails - 如何使用 QR 图像测试双因素身份验证

ruby - Minitest 中 RSpecs instance_double 的对应物是什么?

ruby-on-rails - 我的 rake 任务使用 OptionParser 来处理参数。如何从我的 minitest 测试用例中调用它?

ruby-on-rails - 没有路由匹配获取signup_path

javascript - 如何使 AddThis 与 Rails 4 turbo-links 一起工作?

ruby - 如何在 Scala 中解码/编码 ASCII_8BIT?

mysql - 在 Rails 中迭代多个数据库的安全方法

ruby-on-rails - 使用 minitest-rails 和 rails 4.1 的 Controller 测试路由错误