【发布时间】:2015-06-17 04:53:44
【问题描述】:
我正在做一些条带集成测试,我想存根/模拟一些端点。我正在尝试这样做:
Stripe::Charge.stubs(:retrieve).returns({:balance_transaction => 40})
但我得到以下信息:
NoMethodError: undefined method `stubs' for Stripe::Charge:Class
存根的正确语法是什么? Rails 4,Ruby 2。
编辑:这是我的完整测试方法。本质上,我的 payment_succeeded webhook 会点击条带以检索费用及其关联的余额交易以记录交易费用。我正在使用 stripe_mock 来模拟 webhook 事件,但我宁愿使用标准的存根技术来存根其余的事件。请注意,即使我将其更改为“存根”,它也会在上面抛出相同的错误(用存根代替存根)。
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
【问题讨论】:
-
你使用哪个框架?更多代码示例可能吗?
-
添加了我正在尝试运行的完整测试
标签: ruby ruby-on-rails-4 integration-testing