如果我有一个构造函数调用另一个函数的类,我如何检查它是否被调用以及正确的次数?
class MyClass
def initialize(count)
count.times{self.do_something}
end
def do_something
# whatever
end
end
我想说类似的话
n = 4
MyClass.new(n).should_receive(:do_something).exactly(n).times
n = 2
MyClass.new(n).should_receive(:do_something).exactly(n).times
但这失败了,因为对 do_something 的调用发生在 should_receive 附加到它之前(至少我认为这就是原因)。
expected: 4 times with any arguments
received: 0 times with any arguments
或者从构造函数中调用这样的东西是错误的,我应该重构?
此外,这个问题与这个问题非常相似:
但我希望在过去的 5 年里,答案比手动实现存根new
调用更好。