小编Ben*_*ker的帖子

期待创建一个新对象

我需要写一个期望,即在支付系统中创建一个新对象.代码包括order.rborder_spec.rb(Order类在这里):

#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
Run Code Online (Sandbox Code Playgroud)

我想了解如何编写适当的规范来测试是否创建了新的Payment对象.我发现Semaphore CI的这篇文章很有用,但我不确定解决方案.我很确定我应该创建某种类型的测试双,然后可能是方法存根allow(order).to receive(:confirm_order).and_return(#new_object??).

ruby rspec stub

8
推荐指数
1
解决办法
5934
查看次数

标签 统计

rspec ×1

ruby ×1

stub ×1