2

Railsヘルパーメソッドを次のようにテストしています:

require File.dirname(__FILE__) + '/../../test_helper'
require 'action_view/test_case'
require 'action_view/helpers'

class ListingsHelperTest < ActionView::TestCase

  def setup
    @controller = ListingsController.new
    @request  = ActionController::TestRequest.new
    @response = ActionController::TestResponse.new
  end
end

これは、 url_forなど、要求が発生する必要があるメソッドをヘルパーが呼び出す場合を除いて、うまく機能します。これらをテストするためにリクエスト プロセスを介してスタック全体を実行したくないので (たとえば、get :index を呼び出して)、これを機能させるには何を初期化またはスタブ化する必要がありますか?

リクエストをモックするためのより一般的な解決策を探していますが、具体的には、私が得ているエラーは次のとおりです。

NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.rewrite
rails/actionpack/lib/action_controller/base.rb:625
rails/actionpack/lib/action_view/helpers/url_helper.rb:85
rails/actionpack/lib/action_view/helpers/url_helper.rb:85
4

1 に答える 1

4

私はそれを考えます:

include ActionView::Helpers::UrlHelper
include ActionController::UrlWriter

役立つかもしれません?

于 2009-02-21T01:22:07.107 に答える