我不想在我的unittest中创建真实文件。所以我发现自己经常修修补补 使用废话样板并为伪文件创建模拟工厂。我在想 如果不能更好地避免(在这种情况下)这些毫无意义的努力并尝试 类似于本地unittest方法的范围:
open = lambda x: StringIO()
这样可以吗?或者是否存在重大警告/不采用这种方法并且更好 与模拟工厂?
答案 0 :(得分:5)
这很好,只要你理解python范围是如何工作的(即本地很好,全局会导致问题)。
您可能还应该考虑您的monkeypatches将具有与原始版本不同的失败模式,并进行适当的测试以确保您的代码与内置函数正确交互。