我想测试在初始化类的新实例时是否调用某个方法。在我的项目中,我有以下代码:
class Journey
def initialize(entry_station)
@journey_complete = false
@entry_station = entry_station
self.start_journey
end
def start_journey
...
end
end
我想写一个RSpec测试,在初始化时检查所有新旅程实例上的start_journey
。通常,为了检查方法是否已运行,我expect
一个对象来接收某个消息,然后运行我希望发送它的代码。 e.g。
expect(journey).to receive(:start_journey)
Journey.new(station)
我不能在这里做到这一点,因为我要测试的旅程实例在第二行运行代码之前不存在。 RSpec是否有一个解决方案来测试init
方法?
答案 0 :(得分:1)
您正在搜索它:
expect_any_instance_of(Journey).to receive(:start_journey)
https://github.com/rspec/rspec-mocks#settings-mocks-or-stubs-on-any-instance-of-a-class