13

私は現在、iPhone固有のHTMLメタタグを生成するために使用されるRailsプラグインに取り組んでいます。単体テストにActionView::TestCaseを使用しようとしていますが、同じエラーが発生し続けます。以下のファイルの内容とエラーを参照してください。任意のアイデアや助けをいただければ幸いです。

test_helper.rb

require 'rubygems'
require 'test/unit'
require 'active_support'
require 'action_view'
require File.join(File.dirname(__FILE__), '..', 'lib', 'iphone_helper')

iphone_test_helper.rb

require 'test_helper'

class IphoneHelperTest < ActionView::TestCase
  test 'br' do
    tag = tag('br')
    assert_tag_in tag, '<br />'
  end
end

エラー

RuntimeError: In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers
4

3 に答える 3

4

私のために働いたひどくハックな回避策(完全なレール環境ではなく、宝石に取り組んでいるため):

require 'ostruct'

module ActionController::UrlFor
  def _routes
    helpers = OpenStruct.new
    helpers.url_helpers = Module.new
    helpers
  end
end
于 2010-09-27T08:53:19.543 に答える
1

それぞれのモジュールを昔ながらの方法でインクルードしようとしましたか?:

include ActionDispatch::Routing::RouteSet

NameErrorActionDispatch が不明であることを示すaが発生した場合は、必要になる可能性がありますrequire 'action_dispatch'

于 2010-12-26T09:31:10.483 に答える
0

ばかげた質問かもしれませんが、クラス名とファイル名が一致しないのは問題なのでしょうか (IphoneHelperTest と iphone_test_helper.rb)。場合によっては、クラスがロードされないことがあります。

于 2011-01-05T11:05:44.150 に答える