Как именно фальшивый подход отличается от переопределения один? В обоих случаях вам, скорее всего, придется создавать новый класс, наследующий от того, который вы хотите протестировать.
В любом случае, я не вижу особых различий, если честно, и IMO у вас есть два варианта:
- насмешка (которая потребует перепроектирования битов и внедрения зависимости)
- переопределение (известно как извлечение и переопределение )
Оба действительны, и ни один не является намного лучше, чем другие . Проблема с extract и override в том, что вам понадобятся дополнительные типы / файлы. Это, конечно, означает больше вещей, которыми можно управлять вручную - если этого можно избежать, так и должно быть. Лично я бы пошел с этим только , когда существующие фальшивые фреймворки не могут обработать ваш сценарий.
Основным преимуществом техники насмешек / инъекций является то, что она заставляет вас улучшать дизайн - имея в виду принципы SOLID и переписывая более тестируемый / управляемый код. Не говоря уже о том, что существует множество фреймворков, поддерживающих эту технику ( Moq , RhinoMocks , FakeItEasy - чтобы назвать самые популярные).