Когда класс реализует интерфейс, тогда его легко насмехаться, но для этого вам нужно создать интерфейс.Почему интерфейсные Mocks более желательны, чем подклассы Mocks при модульном тестировании?
Вы также можете макетировать путем подклассификации и переопределения. Если ваш базовый класс предоставляет конструктор без параметров, то ваши подклассы mocks не привязаны к изменениям в конструкторе базового класса.
На первый взгляд кажется, что метод подкласса для создания mocks более желателен, чем создание интерфейсов для всего, но, очевидно, это не так, как это делают большинство людей.
Итак, почему издевательства на основе интерфейсов считаются лучшей практикой, чем издевательствами на основе подкласса?
Странный вопрос, который необходимо задать в 2015 году, поскольку каждая из насмешливая библиотека уже много лет поддерживает первоклассную поддержку насмешек. И, насколько я знаю и, по крайней мере, в сообществе Java, только один из разработчиков jMock на самом деле побуждал пользователей издеваться над интерфейсами; другие разработчики Java-шуток не настаивали на этом. –
Я не думаю, что это странно, если вы не используете насмешливую библиотеку. При этом я определенно хотел бы использовать библиотеку для издевательства над конкретными классами, чем создавать интерфейсы только для тестирования. – jrahhali