gpt4 book ai didi

ruby-on-rails - 返回值的 RSpec 序列和从 stub 中引发的错误

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

我想在引发异常的情况下对 HTTParty 的前两次调用 stub ,然后,第三次调用应该返回值。

   before do
allow(HTTParty).to receive(:get).exactly(2).times.with(url).and_raise(HTTParty::Error)
allow(HTTParty).to receive(:get).with(url).and_return('{}')
end

但一个允许覆盖另一个。如何设置 stub 以在前几次尝试时引发错误,然后让它返回一个值?

最佳答案

根据 this github issue 中提供的信息,您也可以使用以下纯 RSpec 方法来做到这一点。它利用了最通用的定义模拟响应的方式using block :

before do
reponse_values = [:raise, :raise, '{}']
allow(HTTParty).to receive(:get).exactly(3).times.with(url) do
v = response_values.shift
v == :raise ? raise(HTTParty::Error) : v
end
end

关于ruby-on-rails - 返回值的 RSpec 序列和从 stub 中引发的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37609144/

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