gpt4 book ai didi

ruby - 是否可以在这里使用标准断言而不是模拟期望?

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:30 26 4
gpt4 key购买 nike

我正在为 Delayed::Job 开发一个自定义作业类,这样我就可以在作业运行时观察它们,并在它们的各种生命周期事件中移动。在这种特殊情况下,我对它们何时完成感兴趣,以便我可以维护运行的作业的明确顺序。

生产代码:

class ObservableJob
def self.new_with_listener(listener)
job = ObservableJob.new
job.add_listener(listener)
job
end

def success
notify_listeners(:on_success)
end

def add_listener(listener)
(@listeners ||= []) << listener
end

def notify_listeners(event_name, *args)
@listeners && @listeners.each do |listener|
if listener.respond_to?(event_name)
listener.public_send(event_name, self, *args)
end
end
end
end

测试代码:

describe ObservableJob do
it "provides notification on job success" do
notifier = stub{:on_success}
notifier.should_receive(:on_success)
ObservableJob.new_with_listener(notifier).success
end
end

我目前正在使用模拟期望来确保正确回调我的监听器对象。这很好用。但是,我倾向于让我的测试有明确的断言,而不是依赖于隐含的模拟期望。是否可以在这里使用显式断言?

最佳答案

对此进行了更多研究后,在这种情况下无法使用显式断言。

关于ruby - 是否可以在这里使用标准断言而不是模拟期望?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com