模拟调用write()

时间:2011-11-11 14:01:55

标签: python unit-testing mocking

我有一个需要将字符串写入文件的记录器类。所以,我有一个像这样的方法:

def write_to_file(self, string):
  self.__file_handle.write(string)

请注意,错误处理已被删除。显然,我想在不写入文件的情况下测试它。因此通过Mock进行模拟。我看过this解释了如何模拟打开,但这对我没有帮助 - 我在__init__打开了file_handle。现在,我可以在setUp()中执行此操作,但是在setUp之后mock_open似乎超出了范围,因此在测试用例中没有用。

您如何使用Mock编写测试方法来测试write_to_file方法?

2 个答案:

答案 0 :(得分:7)

我是从谷歌到达这里的,但是经过一段时间后才意识到这已经使用mock_open

从1.0开始内置于模拟中

答案 1 :(得分:1)

我首先要改变__file_handle中的__init__。好像用任何具有.write签名的mock / fake对象替换它,你可以测试写入它的内容。

也许通过创建一个设置__file_handle然后覆盖此测试方法的方法?