我有一个班级:
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)
答案 0 :(得分:2)
您的SomeClass#initialize
方法需要2个参数。您正在调用SomeClass.new
而没有参数。在这种情况下,Ruby会引发ArgumentError
。你需要将2个参数传递给SomeClass.new
,将你的initialize
定义改为容忍没有传递参数,或者使用不同类型的RSpec验证double,不需要你创建一个SomeClass
个实例。例如,您可以使用instance_double(SomeClass)
。