我正在测试我的 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
最佳答案
我认为:
include ActionView::Helpers::UrlHelper
include ActionController::UrlWriter
可能有帮助吗?
关于ruby-on-rails - 在 Rails 中测试辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/564837/