小编Mav*_*eeh的帖子

如何模拟 urllib.requests.urlopen?

我正在制作一个屏幕抓取器,用于从电视频道网站收集时间表数据。为此,我必须获取网站的原始 HTML。我是第一次尝试单元测试,我对模拟有一些了解,但我对此还不太有信心。(如果有人能提供一些关于这方面的好的学习资源,我将不胜感激。)

我的方法是尝试返回一个时间表类,该类将从 HTML 数据中解析 DOM 并剥离时间表数据,如下所示:

from urllib.request import urlopen

def fetch_html():
    url = "https://example.com"
    response = urlopen(url)
    dom = response.read()
    return SomeScheduleClass(dom)
Run Code Online (Sandbox Code Playgroud)

我的观点是我不知道如何测试它是否确实SomeScheduleClass按预期返回。我是否嘲笑http.client.HTTPResponse从 得到的对象urlopen?我是否能找到一种方法来嘲笑response.read()?或者我根本不需要测试这个,我只是在浪费时间?如果是这样,我应该在这里测试什么?

顺便说一句,我仍然很生疏,因为我所知道的关于Python的一切都是自学的,所以如果这是非常基础的并且我在浪费每个人的时间,我会非常乐意删除这个问题并忘记它曾经存在过。提前致谢!

python unit-testing mocking urllib pytest

5
推荐指数
1
解决办法
1722
查看次数

标签 统计

mocking ×1

pytest ×1

python ×1

unit-testing ×1

urllib ×1