Monkey-patch内置函数用于单元测试?

时间:2012-02-15 20:05:23

标签: python unit-testing monkeypatching

我不想在我的unittest中创建真实文件。所以我发现自己经常修修补补 使用废话样板并为伪文件创建模拟工厂。我在想 如果不能更好地避免(在这种情况下)这些毫无意义的努力并尝试 类似于本地unittest方法的范围:

open = lambda x: StringIO()

这样可以吗?或者是否存在重大警告/不采用这种方法并且更好 与模拟工厂?

1 个答案:

答案 0 :(得分:5)

这很好,只要你理解python范围是如何工作的(即本地很好,全局会导致问题)。

您可能还应该考虑您的monkeypatches将具有与原始版本不同的失败模式,并进行适当的测试以确保您的代码与内置函数正确交互。