【问题标题】:minitest-rails - test:helpers - NameError: Unable to resolve controller for ApplicationHelperminitest-rails - test:helpers - NameError: Unable to resolve controller for ApplicationHelper
【发布时间】:2014-10-27 15:17:47
【问题描述】:

当我使用 rake test:helpers 为助手运行测试时出现奇怪的错误

ApplicationHelper::dummy#test_0001_必须返回字符串: NameError: Unable to resolve controller for ApplicationHelper::dummy

测试:

require "test_helper"

describe ApplicationHelper do
  include ApplicationHelper
  context "dummy" do
    it "must return string" do
      result = dummy()
      result.must_be_kind_of ( String )
      result.wont_be_empty
    end
  end
end

我的助手

module ApplicationHelper
  def dummy
    "hello world".html_safe
  end
end

我的测试助手

ENV["RAILS_ENV"] = "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require "minitest/rails"
require "minitest/rails/capybara"
require 'minitest/rg'
require "warden_mock"

class ActiveSupport::TestCase
  fixtures :all
  class << self
    alias :context :describe
  end
end

class ActionController::TestCase
  def setup
    request.env['warden'] = WardenMock.new # mockup warden
    User.current = request.env['warden'].user
  end
  register_spec_type(/.*/, self)
end

导轨 4.1.6 minitest-rails 2.1.0

【问题讨论】:

  • 你为什么要这样做:register_spec_type(/.*/, self) 这使得每个测试都使用 ActionController::TestCase。你不想要那个。尝试删除它。
  • 谢谢!这就是解决方案。我是笨蛋:(

标签: ruby-on-rails ruby testing rspec minitest


【解决方案1】:

尝试在您的test_helper.rb 中注释掉require "minitest/rails/capybara",并且仅在您的功能测试中需要它

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2017-09-30
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2017-10-26
    • 2022-12-02
    相关资源
    最近更新 更多