тестирование помощника рельсов, который использует куки - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть метод в app/helpers/application_helper.rb, который вызывает cookies.Который полностью разрешен;этот метод прекрасно работает в моей среде разработчиков и знает, что я имею в виду, когда говорю cookies.

Я тестирую этого помощника с TestUnit (в test/unit/helpers/application_helper_test.rb) и получаю ошибку

NoMethodError: undefined method `cookies' for nil:NilClass

Даже для четырех тестов не устанавливает куки .Это не имеет ничего общего с необходимостью «устанавливать куки в тесте с использованием cookie_jar», потому что проблема не в том, что я устанавливаю куки, а мой помощник не распознает их, проблема в том, что the объект cookies вызывается это ноль .

Я не был уверен, какой объект контроллера cookies вызывался, поэтому я p сделали их всех и обнаружили, что из @controller, @request и @response только @response равен нулю.Поэтому я попытался установить его на «корова».И действительно!Моя ошибка меняется:

NoMethodError: undefined method `cookies' for "cow":String

Так что, похоже, мне просто нужно заглушить @response.Как мне это сделать?

Или я не в порядке и слишком усложняю вещи?

1 Ответ

0 голосов
/ 28 сентября 2011

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

@response.stubs(:cookies).returns({})
...