Код: Выделить всё
foo = fooFactory.create()
Если это так, я хочу, чтобы fooFactory.create() возвращал фиктивный/неактивный объект. Этот объект должен быть полностью инертным — независимо от того, как он используется, он не должен ничего делать или выдавать какие-либо исключения. Обратите внимание, что у foo нет методов, возвращающих значения.
Я рассмотрел следующие варианты.
Сначала создайте макет[/b]. Преимущество этого в том, что это легко и дает мне именно то, что я хочу. Обратной стороной является то, что использование макета в рабочем коде кажется странным. Что еще более важно, я не могу контролировать фиктивную библиотеку, поэтому ее поведение может в какой-то момент измениться и сломать мое приложение.
Во-вторых, создайте класс dummy NoopFoo/ DummyFoo. Затем я вручную реализую методы, которые он должен поддерживать, и просто помещаю pass в тело метода. Плюс в том, что я знаю, что это никогда не нарушит мое приложение. Обратной стороной является то, что если в будущем будут использоваться другие методы Foo, мне нужно будет обновить NoopFoo/ DummyFoo... иначе мое приложение может сломаться.
Есть ли лучший вариант, чем любой из этих? Обратите внимание, что я новичок в Python, поэтому, если он включает в себя более продвинутые функции Python, я был бы признателен за дополнительную информацию. Спасибо!