2016-04-26 9 views
0

Ich habe checkouts_controller.rb mit Aktion:Wie Controller Controller-Anweisung testen?

def create 
    if create_customer(params[:stripeToken], @plan.my_plan_id, params[:code], params[:new_price]) 
     redirect_to user_path(id: current_user.to_param, customer_share: true) 
    else 
     redirect_to new_checkout_path(plan_id: @plan) 
    end 
end 

In users_helper.rb:

def create_customer 
if customer != nil 
... 
else 
flash[:error] = 'Something went wrong, please try again.' 
end 

Also muss ich sonst überprüfen und es in rspec für flash[:error] zu testen.

Antwort

0

Ich hätte flash als Argument an meine create_customer zu make the code testable übergeben werden. Das entspricht auch den OOP-Prinzipien.

Aber, wenn Sie wirklich den Code zu testen, wie es ist, dann gilt:

module UsersHelper 
    def flash 
    @flash ||= {} 
    end 
end 

describe UsersHelper do 
    subject { Object.new.extend(described_class) } 

    context 'Customer does not exist' do 
    it 'sets flash mesage' do 
     # your test code 
    end 
    end 
end 
+0

Fires Streifen :: InvalidRequestError –

+0

Anscheinend Sie verwenden 'streifen ruby' gem. Sie werden alle streifentechnischen Anforderungen erfüllen. – Uzbekjon

Verwandte Themen