我有一个带有全局函数的python程序,该程序很难测试(它需要一个大数据集才能正常工作)。测试调用此函数的最佳方法是什么?
我发现以下作品有效(但是使用它使我感到肮脏)。
模块foo:
def PainLiesHere():
return 4; #guaranteed to be random
模块测试
import foo
def BlissLiesHere():
return 5
foo.PainLiesHere = BlissLiesHere
# test stuff
最佳答案
这是一种完美的方法。只要您知道BlissLiesHere
不会改变您正在测试的单元的整体行为...
编辑:
在它们提供的所有出色功能的帮助下,这是通过不同类型的模拟库(例如Mock,Mox等)完成的。