Скажем, у вас есть следующий помощник Rails:
module ApplicationHelper
def set_cookie(name, value)
cookies.permanent.signed[name] = value
end
end
Чтобы проверить это в Rails 3.2.6 с использованием RSpec 2.11.0 , вы можете сделать следующее:
require 'spec_helper'
describe ApplicationHelper do
it "should set a permanent, signed cookie" do
cookies.should_receive(:permanent).once.and_return(cookies)
cookies.should_receive(:signed).once.with(:user_id, 12345)
helper.set_cookie(:user_id, 12345)
end
end
У меня никогда не было проблем с использованием rspec для проверки cookies.signed[:foo].should == 'bar'
, но добавление вызова cookies.permanent
доставляло мне проблемы в прошлом. Выше я просто заглушаю метод permanent
и снова возвращаю объект cookies
. Это позволяет мне проверить, что он был вызван.
Вы действительно не должны беспокоиться о погодных рельсах Сам установить постоянный cookie, потому что это уже было проверено.