Я пытаюсь установить объект сеанса из спецификации моего контроллера.RSEE set session object
it 'use invalid coupon' do
session[:coupon] = 'abcd'
Service.any_instance.stub(:validate_coupon).with(session[:coupon]).and_return('abcd')
get :index
expect(flash[:coupon__notice]).to be nil
end
, но когда я проверить сессии, вместо объекта @coupon, я получаю @data, который содержит строку «купон», и тест не пройден.
Что делает 'validate_coupon'? Разве вы не хотели делать - 'Service.any_instance.stub (: validate_coupon) .with (: coupon) .and_return ('abcd')'? Как бы то ни было, это фактически 'Service.any_instance.stub (: validate_coupon) .with ('abcd'). And_return ('abcd')', так как 'session [: coupon]' is ''abcd'' ... –