Я тестирую свои вспомогательные методы для 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