python - 如何在 python 中模拟一个自由函数?

标签 python mocking

我有一个带有全局函数的 python 程序,测试起来很痛苦(它需要一个大数据集才能正常工作)。 在测试调用它的函数时解决这个问题的最佳方法是什么?

我发现以下方法有效(但使用它让我觉得很脏)。

模块 foo:

def PainLiesHere():
  return 4; #guaranteed to be random

模块测试

import foo

def BlissLiesHere():
  return 5

foo.PainLiesHere = BlissLiesHere

# test stuff

最佳答案

这是一个非常好的方法。只要您知道 BlissLiesHere 不会改变您正在测试的单元的整体行为...

编辑:

这就是不同类型的模拟库(例如 Mock)在它们提供的所有出色附加功能下所做的事情。 , Mox

关于python - 如何在 python 中模拟一个自由函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154441/

相关文章:

python - 安装 Tensorflow 时出错 - Python 3.8

python - Pandas:如何通过保留第一个数据帧的信息来合并列上的两个数据帧?

javascript - Jest 模拟 setTimeout

c# - 您能否将 'It' 匹配器对象存储为变量,而不是将其内联定义? (起订量)

python - 如何在 pymongo 中使用 "group"对相似行进行分组?

python - 过滤器是否保留列表排序?

Python 和正则表达式

unit-testing - 如何模拟 http.Head()

python - 如何对 __init__() 函数中调用的方法进行单元测试?

php - 无法通过 Mock 测试