0

我有一个函数 foo 是这样的:

class SomeClass(object):

    def foo(self, url):
        try:
            r = requests.get(url)
            buffer = StringIO.StringIO(r.content)
        except Exception as e:
            pass

我正在尝试通过执行以下操作使用 Python 模拟库对其进行测试:

class FooTest(unittest.TestCase):

    def test_foo(self):
        obj = SomeClass()

        with patch('requests.get', MagicMock()):
            with patch('StringIO.StringIO', some_fake_method):
                obj.foo()

但是,这样做不会修补它们中的任何一个,而是会得到适当的response对象StringIOStringIO如果我从补丁中省略,我会MagicMock按预期得到一个对象(而不是一个response对象)。我怎样才能使它正常工作?

4

0 回答 0