ИМХО, вопрос о собственности не имеет значения.
Соответствующим вопросом является вопрос сцепления , т. Е. Что указывает ваш тестовый код. Вы, конечно, не хотите тестовый код, который определяет детали API некоторой библиотеки, которую вы случайно используете. Это то, что вы получаете, когда вы, например. используйте Mockito для насмешки над библиотекой непосредственно в вашем тестовом классе.
Широкое предложение по для этой проблемы - создать оболочку вокруг библиотеки и затем смоделировать оболочку. Но это имеет следующие недостатки:
- Код внутри оболочки не проверяется.
- Оболочка может быть несовершенной абстракцией, поэтому может потребоваться изменить API обертки. Если во многих тестах вы издевались над оболочкой, вам придется адаптировать все эти тесты.
Поэтому вместо этого я бы рекомендовал отделить тесты от интерфейсов в производительном коде в целом . Не помещайте макеты непосредственно в тестовый код, а создайте отдельный класс-заглушку, который реализует или макетирует производительный интерфейс. Затем добавьте второй интерфейс к заглушке, который позволит тестам выполнить необходимые настройки или утверждения. Тогда вам нужно будет адаптировать только один класс в случае изменения производительного интерфейса - и вы даже можете позволить себе смоделировать / заглушить интерфейс сложной или часто меняющейся библиотеки.
Примечание. Все это предполагает, что на самом деле необходимо использовать макет или заглушку. Я не обсуждал этот вопрос здесь, потому что это не входило в суть вопроса ОП. Но на самом деле спросите себя, нужно ли вам вообще использовать макеты / заглушки . По моему опыту, они злоупотребляют ...