тестирование помощника rails, который использует файлы cookie

У меня есть метод в 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. Как мне это сделать?

Или я тут не в тему и все усложняю?


person chadoh    schedule 27.09.2011    source источник


Ответы (1)


Добавьте эту настройку ко всем своим тестам, использующим этот метод:

@response.stubs(:cookies).returns({})
person chadoh    schedule 27.09.2011