Я унаследовал код с очень сложной инициализацией в конструкторе, который зависит от очень сложной среды.
Я только хочу иметь возможность протестировать некоторые функции, поэтому просто нужен пустой объект, например тот, который был бы сгенерирован конструктором по умолчанию, однако конструктор по умолчанию был перезаписан некоторыми очень сложными вещами.
У меня нет возможности прикоснуться к исходному коду, поэтому мне просто нужен пустой объект, чтобы иметь возможность вызывать его функции и тестировать.
Как бы я это сделал? Я посмотрел на насмешку, но, похоже, не могу передать фактическую функциональность класса в макет объекта.
ОБНОВЛЕНИЕ №1: Пример, чтобы попытаться прояснить, о чем я прошу
class Foo(object):
def __init__(self, lots_of_stuff):
lotsofthingsbeingdone()
class Bar(Foo):
def core_functionality(self, something):
val = does_something_important(something)
return val
Я хочу протестировать core_functionality (). Я хочу накормить его «чем-то» и убедиться, что val соответствует моим ожиданиям относительно того, каким он должен быть.
1 ответ
Используйте это с умом. Не усугубляйте устаревший беспорядок:
# No constructors executed.
empty_object = object.__new__(YourClass)
Похожие вопросы
Новые вопросы
python-2.7
Python 2.7 является последней основной версией в серии 2.x и больше не поддерживается с 1 января 2020 года. Используйте общий тег [python] во всех вопросах Python. Не добавляйте этот тег просто для указания версии Python, которую вы используете, если только вопрос не касается проблемы, специфичной для Python 2.7.