У меня есть метод в app/helpers/application_helper.rb
, который вызывает cookies
. Что полностью разрешено; этот метод прекрасно работает в моей среде разработки и знает, что я имею в виду, когда говорю cookies
.
Я тестирую этот помощник с помощью TestUnit (в test/unit/helpers/application_helper_test.rb
) и получаю сообщение об ошибке
NoMethodError: undefined method `cookies' for nil:NilClass
Даже для четырех тестов, которые не устанавливают файлы cookie. Это не имеет никакого отношения к необходимости «устанавливать файлы cookie в тесте с помощью cookie_jar
», потому что проблема не в том, что я устанавливаю файлы cookie, а мой помощник не распознает их, проблема в том, что элемент объект cookies
вызывается ноль.
Я не был уверен, какой объект контроллера cookies
вызывается, поэтому я p
проверил их все и обнаружил, что из @controller
, @request
и @response
только @response
равен нулю. Поэтому я попытался установить его на «корову». И действительно! Моя ошибка меняется:
NoMethodError: undefined method `cookies' for "cow":String
Так что, похоже, мне просто нужно заглушить @response
. Как мне это сделать?
Или я тут не в тему и все усложняю?