Мне нужно написать, что новый объект будет создан в платежной системе. Код, включенный в order.rb
order_spec.rb
и (Order
класс here):Ожидайте создания нового объекта
#order.rb
def confirm_order(method_of_payment)
if credit_card_but_products_out_stock?(method_of_payment)
raise "Cannot make credit card payment now, as some products are out of stock"
end
order_total
Payment.new(method_of_payment, self.total)
end
#order_spec.rb
it 'it creates a new payment object if method_of_payment is valid and order.total is > 0' do
order.add_product(product, 3)
order.confirm_order(:credit_card)
#Expect that a new payment object is created.
end
Я хочу, чтобы понять, как я могу написать соответствующую спецификацию, чтобы проверить, что новый объект оплаты создается. Я нашел this article от Semaphore CI полезным, но я не уверен в решении. Я почти уверен, что мне нужно создать двойную пробную версию, а затем, возможно, метод stub to allow(order).to receive(:confirm_order).and_return(#new_object??)
.
Очень ясно - спасибо. –