Ich versuche, Feature-Tests für meine RoR-App zu schreiben, wo Benutzer bezahlen müssen, um einen Beitrag einzureichen. Die Benutzerreise ist;Rails, Stripe-Feature-Test Fehler - Parameter fehlt oder der Wert ist leer: Gebühr
- Der Benutzer erstellt einen Beitrag und wählt die Schaltfläche ‚fortfahren Zahlung‘
- Benutzer dann zu einer Abrechnungsseite weitergeleitet, wo sie in ‚Kartennummer‘ ‚Kartenprüfung‘ und ‚Karte Ablauf‘ füllen kann, Benutzer dann drückt die Schaltfläche "Bezahlen". Die Zahlung wird von Stripe bearbeitet. Es ist nicht das Popup-Widget, sondern ein benutzerdefiniertes Formular.
- Wenn dies gelingt, wird der Benutzer auf ihre Live-Post umgeleitet
Ich habe ein Post-Modell und ein Ladungsmodell. Post hat eine Gebühr. Ladung gehört_zum Posten. Die Zahlungen sind einmalige Zahlungen, keine Abonnements.
My Post Controller (erstellen Aktion nur):
def create
@post = Post.new(post_params)
@post.user = current_user
@amount = 500
if @post.save
redirect_to new_post_charge_path(@post.id)
else
flash[:error] = "There was an error saving the post. Please try again."
render :new
end
end
Meine Laderegler (create Aktion nur):
def create
@charge = Charge.new(charge_params)
@post = Post.find(params[:post_id]);
@charge.post = @post
if @charge.save
Stripe::Charge.create(
:amount => 500,
:currency => "gbp",
:source => params[:charge][:token],
:description => "Wikipost #{@post.id}, #{current_user.email}",
:receipt_email => current_user.email
)
@post.stripe_card_token = @charge.stripe
@post.live = true
@post.save
redirect_to @post, notice: 'Post published successfully'
else
redirect_to new_post_charge_path(@post.id)
end
rescue Stripe::CardError => e
flash[:error] = e.message
return redirect_to new_post_charge_path(@post.id)
end
-I-Tests sind mit rspec/Capybara und ich versucht, eine Funktion zu schreiben Test wie unten, aber ich bekomme den Fehler 'param fehlt oder der Wert ist leer: Ladung';
Was ist der beste Weg, um den Fehler zu beheben oder einen Test für diese Benutzerreise zu schreiben?