2016-12-14 3 views
0


Я попытался найти Google для точного решения моей проблемы, но не нашел подходящего результата, поэтому я прошу об этом решении.

Вот Важная информация
Рубин Версия для: рубина 2.2.4p230 (2015-12-16 ревизия 53155) [x86_64-darwin15]
Rails версии: Rails 4.2. 0
Rspec Версия: 3.5.4

I «Ве контроллера, который имеет действие под названием clearCart, который в основном функционирует для очистки cart session

Вот мое действиеredirect_to: action =>: index in Rspec

def clearCart 
    session[:cart] = nil 
    redirect_to :action => :index 
end 

Основной целью для вышеуказанного действия, чтобы проверить redirect_to :action => :index.

Маршруты для того же действия (если необходимо)

get 'cart/clear' => 'cart#clearCart' 

Вот Rspec тест, чтобы проверить то же самое действие

describe "GET #clearCart" do 
    it "should clear cart" do 
    get :clearCart 
    subject { get :clearCart } 
    subject.should redirect_to :action => :index 
    # expect(response).to redirect_to(:index) 
    # response.should redirect_to :index 
    # before { post :clearCart } 
    # render 'index' 
    # specify { response.should redirect_to('frontend/cart/index') } 
    end 
end 

(комментарии возможное способ, которым я пытался выполнить тест)

Вот мой индекс действия (при необходимости)

def index 
    render 'frontend/cart/index' ,layout: false 
end 

Я обычно относятся RELISH для руководства.

Заранее благодарим за помощь.

+2

Это не имеет ничего общего с самим вопросом, но я бы предложил использовать snake_case для метода имя и переименуйте его в clear_cart (https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars) – lightalloy

+0

@lightalloy ваше предложение будет оценено. Спасибо :) –

ответ

3

Если Вы ожидаете matchers следующий код должен работать

describe "GET #clearCart" do 
    subject { get :clearCart } 
    it { is_expected.to redirect_to(action: :index) } 
end 

В случае Shoulda matchers использовать

describe "GET #clearCart" do 
    before { get :clearCart } 
    it { should redirect_to(action: :index) } 
end 
Смежные вопросы