Rspec VerifyingDouble object_double错误的参数数量

时间:2014-12-30 00:01:52

标签: rspec rspec3

我有一个班级:

class SomeClass
  def initialize(foo, bar)
  end
end

我试图像这样创建一个验证双:

object_double(SomeClass.new)

这给了我错误:

wrong number of arguments (0 for 2)

如何防止这种情况?

我也尝试过这样做,即使它对我没有多大意义

object_double(SomeClass.new, initialize: true)

1 个答案:

答案 0 :(得分:2)

您的SomeClass#initialize方法需要2个参数。您正在调用SomeClass.new而没有参数。在这种情况下,Ruby会引发ArgumentError。你需要将2个参数传递给SomeClass.new,将你的initialize定义改为容忍没有传递参数,或者使用不同类型的RSpec验证double,不需要你创建一个SomeClass个实例。例如,您可以使用instance_double(SomeClass)