当前位置: 首页 > 面试题库 >

像urllib这样的模拟/存根python模块如何

柳奇思
2023-03-14
问题内容

我需要测试一个函数,该函数需要使用urllib.urlopen(它也使用urllib.urlencode)来查询外部服务器上的页面。服务器可能已关闭,页面可能已更改;我不能依靠它进行测试。

控制urllib.urlopen返回的最佳方法是什么?


问题答案:

另一个简单的方法是让您的测试覆盖urllib的urlopen()功能。例如,如果您的模块具有

import urllib

def some_function_that_uses_urllib():
    ...
    urllib.urlopen()
    ...

您可以这样定义测试:

import mymodule

def dummy_urlopen(url):
    ...

mymodule.urllib.urlopen = dummy_urlopen

然后,当您的测试调用中的函数时mymoduledummy_urlopen()将调用而不是real
urlopen()。像Python这样的动态语言,使测试方法和类的存根非常容易。

请参阅我的博客文章,网址为http://softwarecorner.wordpress.com/,以获取有关测试依赖项的更多信息。



 类似资料:
  • 问题内容: 我使用sinon作为对nodejs(Hapijs)功能的单元测试。该函数在index.js中。我在我的测试文件中包含index.js作为 但是再次在index.js里面有要求 再次,library.js需要第三方功能 现在,当我在下面运行我的测试文件testfunc.js时 我收到以下错误 我想知道是否有任何方法可以对index.js的内部require库.stub进行存根(因为ind

  • 本文向大家介绍详解python内置模块urllib,包括了详解python内置模块urllib的使用技巧和注意事项,需要的朋友参考一下 urllib 是 python 的内置模块, 主要用于处理url相关的一些操作,例如访问url、解析url等操作。 urllib 包下面的 request 模块主要用于访问url,但是用得太多,因为它的光芒全都被 requests 这个第三方库覆盖了,最常用的还是

  • 我在micronaut中有以下接口来执行HTTP POST请求: 我有一个调用接口的类: 我想在我的spock测试中模拟/存根API调用,我尝试了以下方法: 然而,我得到的错误:

  • 问题内容: 我想弄清楚在使用python的turtle模块创建图形后如何保存位图或矢量图形图像。经过一番谷歌搜索后,我找不到一个简单的答案。我确实找到了一个名为canvas2svg的模块,但是我对python还是很陌生,我不知道如何安装该模块。有一些内置的方法可以保存乌龟画布的图像吗?如果没有,我应该在Ubuntu机器上哪里放置python的自定义模块? 问题答案: 这将为您提供帮助;我遇到了同样

  • 我正在尝试使用Cypress存根一个模块。这是我到目前为止尝试过的,但不起作用。 这是我的组件/页面的简短版本 这是我定制的钩子的样子 下面是getData的外观 方法通过db.js(实际上是db/index.js)公开 我正在尝试存根getData。js使e2e测试更加一致。这就是我所做的。 上面的存根不起作用。运行测试时,对外部服务的API调用仍在进行。文档本身让我推断我应该这样写,但它不起作

  • 我试图理解如何使用python的unittest框架 我有一段代码,看起来像这样-- 有人能帮我开发unittest模块来测试这个吗?我问这个问题是为了学习如何使用单元测试(我试图学习TTD:测试驱动开发) 到目前为止,我想出了这个...导入单元测试导入os.path 类TestFunctions(unittest.TestCase): 如果name==“main”:unittest。main()