У меня есть метод foo
в Python, который создает класс Service. Я хочу издеваться над классом Service, но когда я запускаю тест, он все еще пытается создать экземпляр класса. Вот упрощенная версия моей установки:
class Service:
def __init__(self, service):
self.service_stuff = service
def run_service(self):
do_service_stuff()
def foo:
new_service = Service("bar")
new_service.run_service()
Затем мой модульный тест:
@patch('mymodule.service_file.Service')
def test_foo(self, mock_service):
foo()
Я хотел бы запустить foo, но пусть он использует мой смоделированный объект вместо создания фактический экземпляр Service, но вместо этого, когда я запускаю его, он пытается создать экземпляр фактического экземпляра Service () и запускает foo () как обычно, даже если кажется, что он распознает подпись строки, которую я поместил в патч. Почему это происходит?