python - 在方法中模拟一个对象,该对象不是Python中的参数

标签 python mocking python-unittest

(我是Python新手)

我正在查看:Mocking out objects and methods

我想知道我是否可以替换 python 方法中不作为参数传递的对象,假设我的方法是这样的:

def mypymethod(param1)
  myresult = os.path.something
  return myresult

我希望测试 mypymethod,但是我希望在这种情况下 os.path 在我从测试方法调用它时返回“yourmockresult”

无论如何我可以做到这一点吗? 谢谢!!

最佳答案

您应该使用 Michael Foord 的 Mock相同的模块。

来自文档:

>>> from mock import Mock
>>> real = ProductionClass()
>>> real.method = Mock(return_value=3)
>>> real.method(3, 4, 5, key='value')
3
>>> real.method.assert_called_with(3, 4, 5, key='value')

关于python - 在方法中模拟一个对象,该对象不是Python中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773234/

相关文章:

python - __init__ 接受一个参数 2 给定 unittest

python - Chromedriver 测试后关闭

python - 权限错误 : [WinError 32] The process cannot access the file because it is being used by another process:

python - 带有 Lambda 自定义资源的 Cloudformation 错误 - Python

python - "A value is trying to be set on a copy of a slice from a DataFrame"尝试设置数据帧值时出现警告

python 模拟 sqlalchemy 连接

python - 如何在 Flask-SqlAlchemy 中模拟 <ModelClass>.query.filter_by()

python - pandas 系列中的独特值计数

python - Kivy:使散点图与子标签或图像大小相同

unit-testing - Kotlin 中的模拟扩展功能