不能在python中模拟类方法

时间:2016-04-05 20:44:40

标签: python unit-testing python-mock

我有一个我尝试在测试中模拟的类。该课程位于server/cache.py,看起来像:

class Storage(object):
    def __init__(self, host, port):
        # set up connection to a storage engine

    def store_element(self, element, num_of_seconds):
        # store something

    def remove_element(self, element):
        # remove something

此类用于server/app.py,与此类似:

import cache
STORAGE = cache.Storage('host', 'port')
STORAGE.store_element(1, 5)

现在当我尝试在测试中模拟它时出现问题:

import unittest, mock
import server.app as application
class SomeTest(unittest.TestCase):
    # part1
    def setUp(self):
        # part2
        self.app = application.app.test_client()

如果我无法连接到存储,那么在测试期间这显然不起作用。因此,我必须通过在第1部分,第2部分和第39部分中编写内容来嘲笑它。

我试图用

来实现它
@mock.patch('server.app.cache')  # part 1
mock.side_effect = ... # hoping to overwriting the init function to do nothing

但它仍然试图连接到真正的主机。那么如何在这里正确模拟一个完整的类呢?附:我查看了many many questions,它看起来与我相似,但徒劳无功。

0 个答案:

没有答案