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

时间:2010-07-01 00:49:47

标签: python mocking

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

我发现以下情况有效(但它使我感觉很脏)。

模块foo:

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

模块测试

import foo

def BlissLiesHere():
  return 5

foo.PainLiesHere = BlissLiesHere

# test stuff

1 个答案:

答案 0 :(得分:8)

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

编辑:

这是在他们提供的所有优秀附加功能下,通过不同类型的模拟库完成的工作,例如MockMox等。