0
我是RSpec的新手,并在如何使用模拟进行测试中挣扎。 当网络挂接进来这基本上是调用。复杂情况下的Rspec
class InvoiceCreated
def call(event)
invoice = event.data.object
# NOTE: Skip if the invoice is closed.
if invoice.closed == false
stripe_customer = invoice.customer
payment_account = PaymentCardAccount.find_by(stripe_customer_id: stripe_customer)
card_invoice = Invoice.find_card_invoice_in_this_month_within(payment_account: payment_account)
card_invoice.process_invoice_items(stripe_customer: stripe_customer,
event_invoice_id: invoice.id)
card_invoice.process!(:pending, id: invoice.id)
end
end
end
我喜欢使用模拟和防止API调用用于测试的下面两行代码。
card_invoice.process_invoice_items(stripe_customer: stripe_customer,
event_invoice_id: invoice.id)
card_invoice.process!(:pending, id: invoice.id)
我该如何使用mock?
您正在使用哪种版本的rspec? – hakcho
我使用'rspec-rails','〜> 3.4.2'。 – Tosh
当你说“模拟”时,你究竟想在这里实现什么?你只是想要一个实际上不会做任何事情的虚拟对象,并且不会因为像'NoMethodError:Undefined method process_invoice_items'这样的错误而失败。或者,您是否确实想要存储处理发票的Web API调用,但是要执行此功能的“全面测试”?试图达到什么目的? (也许你可以在上面的帖子中包含当前的测试?) –