gpt4 book ai didi

rspec-rails - 如何 rspec 模拟 open-uri?

转载 作者:行者123 更新时间:2023-12-03 20:17:01 26 4
gpt4 key购买 nike

我有这个简单的代码,我在其中发送 http 请求并读取所有响应。
这是我的导轨代码

open("http://stackoverflow.com/questions/ask")

我如何为这行代码编写规范。我没有使用 mocha 和 webmock 的选项。我只能使用 Rpsec 的模拟框架。

我曾尝试使用此语句
OpenURI.stub!(:open_uri).should_receive(:open).with("http://stackoverflow.com/questions/ask")

但我一直收到这个错误
RSpec::Mocks::MockExpectationError: (#<RSpec::Mocks::MessageExpectation:0xd1a7914>).open("http://stackoverflow.com/questions/ask")
expected: 1 time
received: 0 times

最佳答案

我以为open方法是在 Kernel 的级别上定义的, 但是我错了。

如果你想模拟 open ,您应该在 上执行此操作您对象的级别 像这样:

it "should do something" do
object_under_test = ObjectUnderTest.new
object_under_test.should_receive(:open).with("http://example.org")
end

关于rspec-rails - 如何 rspec 模拟 open-uri?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10796986/

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