У меня есть класс, представляющий наш DB слой, который будучи инстанцированный внутри в некоторых классах (я не могу передать его в качестве внешнего параметра)
Например:
Возможно ли исправление экземпляра класса с помощью существующего экземпляра Singleton?
class MyClass(object):
def __init__(self):
self.dbapi = DatabaseAPI()
self.timeout = 120
def some_methods(self):
pass
Мы пишем несколько тестов Unit , и мы хотели бы высмеять self.dbapi с существующим экземпляром, который мы будем создавать до запуска теста.
, например:
my_dbapi = DatabaseAPIMock()
...
...
@patch('MyModule.DatabaseAPI', my_dbapi)
def my_test(self):
my_class = MyClass() #<---This is where I'm not able to mock the DatabaseAPI
Это то, что я пытался достичь до сих пор, но от отладки кода я вижу, что self.dbapi создается с реальным объектом, а не с предварительно сделанной издеваться ,
Что мне не хватает?
BTW, мы запускаем python 2.7
Заранее благодарен!
Можете ли вы объяснить, как вы импортировать '' DatabaseAPI' в MyModule'? –
Я полностью изменил свой ответ. –