Sto eseguendo alcuni test di integrazione delle strisce e vorrei eseguire il mopping di alcuni endpoint. Sto cercando di fare in questo modo:Metodo di stub in ActionDispatch :: IntegrationTest
Stripe::Charge.stubs(:retrieve).returns({:balance_transaction => 40})
ma sto ottenendo il seguente:
NoMethodError: undefined method `stubs' for Stripe::Charge:Class
Qual è la sintassi corretta per lo sradicamento questo? Rails 4, Ruby 2.
Modifica: Ecco il mio metodo di prova completo. In sostanza, il mio webhook di payment_succected raggiunge stripe per recuperare un addebito ed è una transazione di saldo associata per registrare la commissione di transazione. Sto usando stripe_mock per prendere in giro gli eventi di webhook, ma preferisco estirpare il resto usando tecniche di stub standard. Si noti che anche quando lo cambio su "stub", si genera lo stesso errore sopra (con stub sostituito per gli stub).
require 'test_helper'
require 'stripe_mock'
class WebhooksTest < ActionDispatch::IntegrationTest
# called before every single test
def setup
StripeMock.start
end
# called after every single test
def teardown
StripeMock.stop
end
test 'invoice.payment_succeeded' do
Stripe::Charge.stubs(:retrieve).returns({:balance_transaction => 40})
event = StripeMock.mock_webhook_event('invoice.payment_succeeded', { :customer => "stripe_customer1", :id => "abc123" })
post '/stripe-events', id: event.id
assert_equal "200", response.code
assert_equal 1, StripeInvoicePayment.count
assert_equal 'abc123', event.data.object.id
end
end
Quale struttura usi? Più esempio di codice forse? – Elyasin
Aggiunto il test completo che sto cercando di eseguire – Msencenb