如何测试爬虫?即:模拟网络请求

发布于 2024-08-20 05:27:37 字数 274 浏览 7 评论 0原文

所以我正在测试我的爬虫的各个部分,现在我遇到了一个难题:模拟实际的请求。

我不想每次运行规范时都提出请求。

有人尝试过在测试助手中启动 webrick 服务器吗?

诸如

myserver = SomeServerLib.start('localhost', some_port)
myserver.serve_directory(a_directory_with_some_html_files)

“谢谢”之类的东西!

So I'm testing the individual parts of my crawler and now I've hit a stump: mocking the actual requests.

I don't want to make a request every time I run a spec.

Anyone ever tried starting a webrick server in the test helper?

Something like

myserver = SomeServerLib.start('localhost', some_port)
myserver.serve_directory(a_directory_with_some_html_files)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

稍尽春風 2024-08-27 05:27:37

您可以模拟 HTTP 请求并使用期望。
请参阅 Webmock 项目。

You can mock the HTTP request and use expectations.
See Webmock project.

oО清风挽发oО 2024-08-27 05:27:37

您还可以使用 FakeWeb,它允许您在测试期间提供预设的 HTTP 响应。

http://fakeweb.rubyforge.org/

(顺便说一下,如果你正在使用 Net::HTTP ,它非常慢。

You can also use FakeWeb, which lets you provide canned HTTP responses during tests.

http://fakeweb.rubyforge.org/

(As a side note, you probably should look into alternatives if you're using Net::HTTP. It's very slow. Check out em-http-request )

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文