我在使用unittest模拟和补丁时遇到困难。我想测试一个特定的类并更改其中的一些属性。
我认为我遇到了路径问题,但是不知道如何解决。
#lib.inventory.py
class Inventory(object):
def __init__(self):
self.db = "12"
def do_stuff(self):
return "ok"
#test.py
import unittest
from mock import patch
import time
from lib.inventory import Inventory
#test_case.py
class MyTest(unittest.TestCase):
@patch('lib.inventory.Inventory')
def test_retrieve_project_id(self,mock_inventory):
print "####################"
print Inventory
print mock_inventory
print "####################"
运行此测试时,我应该看到Inventory
和mock_inventory
对象都指向同一个MagickMock对象。事实并非如此:
####################
<class 'lib.inventory.Inventory'>
<MagicMock name='Inventory' id='140594977874320'>
####################
你能告诉我我做错了吗?也许我误解了模拟和补丁概念? 谢谢