覆盖方法内的函数调用

时间:2013-10-05 02:22:58

标签: python testing

我正在寻找单元测试一个类方法,该方法对popen进行函数调用并对其执行一些操作。

from os import popen

class myclass(object):
    ''' Generic class. '''

    def do_something(self):
        ret = popen("cat some_file")
        # do some work with the returned value here
        return modified_ret

我需要控制从该popen调用返回的内容以测试该方法。什么是最好的解决方法?

编辑:我也有多个方法在这个单独的类中使用popen;所以,如果我可以在实例上覆盖它,而不是整个类,那将是伟大的。

1 个答案:

答案 0 :(得分:1)

如果我正确地解释了这个问题,那么您似乎正在寻找一个用于测试的模拟库。

看看这个

What is your favorite Python mocking library?

模拟库允许您使用模拟对象替换测试中的系统部分,并对如何使用它们进行断言。