代码之家  ›  专栏  ›  技术社区  ›  Andrew Vit

在Rails中测试辅助方法

  •  2
  • Andrew Vit  · 技术社区  · 17 年前

    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
    
    1 回复  |  直到 17 年前
        1
  •  4
  •   nitecoder    17 年前

    我认为:

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

    可能会有所帮助?