ruby – 使用RSpec如何测试救援异常块的结果
发布时间:2020-12-16 23:22:24 所属栏目:百科 来源:网络整理
导读:我有一个方法,其中包含一个开始/救援块.如何使用RSpec2测试救援块? class Capturer def capture begin status = ExternalService.call return true if status == "200" return false rescue Exception = e Logger.log_exception(e) return false end endend
我有一个方法,其中包含一个开始/救援块.如何使用RSpec2测试救援块?
class Capturer def capture begin status = ExternalService.call return true if status == "200" return false rescue Exception => e Logger.log_exception(e) return false end end end describe "#capture" do context "an exception is thrown" do it "should log the exception and return false" do c = Capturer.new success = c.capture ## Assert that Logger receives log_exception ## Assert that success == false end end end 解决方法
使用
should_receive 和
should be_false :
context "an exception is thrown" do before do ExternalService.stub(:call) { raise Exception } end it "should log the exception and return false" do c = Capturer.new Logger.should_receive(:log_exception) c.capture.should be_false end end 另请注意,您不应该从Exception中抢救,而是更具体.例外涵盖了一切,几乎绝对不是你想要的.您最多应该从StandardError中抢救,这是默认值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |