Как использовать @testable import для фреймворков, построенных через Carthage - PullRequest
0 голосов
/ 31 октября 2018

Я уже прочитал ответы на этот вопрос , но я не удовлетворен.

Есть ли возможность использовать @testable для внешних библиотек, например Alamofire, RxRealm (причина, по которой я хотел бы сделать это, заключается в том, что некоторые классы не открыты, и в некоторых случаях невозможно создать макет в модульных тестах без переопределения реальной реализации ).

1 Ответ

0 голосов
/ 07 апреля 2019

Carthage не создает фреймворки для тестирования. Это на самом деле хорошая вещь.

Авторы библиотеки дают гарантии о том, как ведет себя публичный интерфейс своего программного обеспечения, но имеют свободу изменять его приватный интерфейс по мере необходимости.

Вместо того, чтобы пытаться создать подкласс для реализации типов зависимостей сторонних разработчиков для создания для них тестовых двойников, я бы рекомендовал поставить протокол перед подмножеством функций, которые вам нужны из библиотеки, и взаимодействовать только с протокол в вашем производственном коде .

Если у вас есть конкретный случай, который вы хотите проверить, не могли бы вы обновить вопрос? Я хотел бы посмотреть, смогу ли я помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...