gpt4 book ai didi

ruby - 引发 OpenURI::HTTPError 导致错误的参数数量错误

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

我正在测试方法如何处理 302 HTTPError 异常。我试图 stub 一个方法调用以编程方式引发一个,但是它一直提示错误的参数数量错误(0 代表 2)

代码测试了这一行:

document = Nokogiri.HTML open(source_url)

在规范中我是这样写的:

subject.stub(:open).and_raise(OpenURI::HTTPError)
subject.should_receive(:ended=).with(true)
subject.update_from_remote

我认为它与 Nokogiri.HTML() 或 Open-uri.open() 无关,那么为什么会发生这种情况?

此外,我将如何尝试将此 HTTPError 设置为 302 重定向错误?谢谢

最佳答案

我发现 OpenURI::HTTPError 的构造函数需要两个参数。 Rspec 默认会调用错误类的不带参数的新方法,从而导致此错误。所以我需要通过传递所需的参数来手动创建一个错误对象。

exception_io = mock('io')
exception_io.stub_chain(:status,:[]).with(0).and_return('302')
subject.stub(:open).with(anything).and_raise(OpenURI::HTTPError.new('',exception_io))

关于ruby - 引发 OpenURI::HTTPError 导致错误的参数数量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292793/

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