gpt4 book ai didi

ruby-on-rails - 如何写下 rspec 来测试救援 block 。?

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:28 25 4
gpt4 key购买 nike

我有这样的方法

def className  
def method_name
some code
rescue
some code and error message
end
end

那么,如何写下 rspec 来测试救援 block ..?

最佳答案

如果你想拯救,这意味着你希望一些代码引发某种异常。

您可以使用 RSpec stubs伪造实现并强制出错。假设执行 block 包含一个可能引发的方法

def method_name
other_method_that_may_raise
rescue => e
"ERROR: #{e.message}"
end

在您的规范中将 stub 挂接到该方法

it " ... " do
subject.stub(:other_method_that_may_raise) { raise "boom" }
expect { subject.method_name }.to_not raise_error
end

你也可以通过测试结果来检查rescue handler

it " ... " do
subject.stub(:other_method_that_may_raise) { raise "boom" }
expect(subject.method_name).to eq("ERROR: boom")
end

不用说,你应该提出一个错误,它很可能是由真正的实现而不是一般错误引发的

{ raise FooError, "boom" }

并仅挽救那个错误,假设这是相关的。


作为旁注,在 Ruby 中,您定义一个类:

class ClassName

不是

def className

如您的示例。

关于ruby-on-rails - 如何写下 rspec 来测试救援 block 。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20999426/

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