如何在Python中模拟自由函数?

8 投票
1 回答
3702 浏览
提问于 2025-04-16 00:39

我有一个Python程序,其中有一个全局函数,这个函数测试起来很麻烦,因为它需要一个很大的数据集才能正常工作。在测试调用这个函数的其他函数时,有什么好的方法可以绕过这个问题呢?

我发现以下方法可以解决这个问题(不过用起来让我感觉不太舒服)。

模块 foo:

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

模块 test

import foo

def BlissLiesHere():
  return 5

foo.PainLiesHere = BlissLiesHere

# test stuff

1 个回答

8

这样做完全没问题。只要你知道 BlissLiesHere 不会改变你正在测试的单元的整体行为就可以了……

编辑:

这就是不同类型的模拟库在提供的各种额外功能下所做的事情,比如 MockMox 等等。

撰写回答