如何检查方法使用RSpec获取的参数?

时间:2012-06-19 12:26:06

标签: ruby unit-testing rspec

假设我有一个名为MyClass的类,基本上我想做这样的事情:

class MyClass   
  def initialize(a)
    do_stuff a, 4, 11   
  end

  def do_stuff(a,b,c)
     # ...   
  end 
end


# rspec below 
MyClass.any_instance.should_receive(:do_stuff).with_the_values(10, 
     anything, anything) 
MyClass.new 10

基本上,我想检查初始化是否会调用,并将正确的值传递给do_stuff

1 个答案:

答案 0 :(得分:2)

我认为你应该测试你的班级是否表现正确,而不是看谁通过了谁。

我想,do_stuff方法应该产生某种副作用。如果是这样,那么检查这种副作用是否是您期望的副作用。这样您就可以自由地更改类的实际实现,而无需每次都重写您的规范。