【发布时间】:2015-04-28 17:28:09
【问题描述】:
我意识到这是一件很奇怪的事情——主要是为了简化我的单元测试。
我有一个类,它的__init__ 将文件名作为参数,它open()s 并从中读取一堆数据。如果我能以某种方式“欺骗”open() 从字符串对象读取而不是实际将临时文件写入磁盘,那将是非常棒的。
这可能吗?如果可以,我会怎么做?
【问题讨论】:
-
只需更改
__init__的定义即可。其他任何东西(临时文件、替换全局变量或管道)都是可怕的 hack。 -
如果你真的不能改变
__init__(为什么不呢?为什么非单元测试调用者不能轻松地传递任意数据而不是文件名?),这个问题可能是stackoverflow.com/questions/5237693/… 的副本。
标签: python-3.x