Можно ли вернуть ложную WCSession в sessionDidBecomeInactive? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть приложение, которое связывается между iOS и watchOS, используя экземпляр WCSession через мой собственный экземпляр WatchSessionManager watchSessionManager.WatchSessionManager принимает протокол WCSessionDelegate.
При нормальной работе используется WCSession.default, но во время модульных тестов вместо этого MockWCSession экземпляр mockWCSession.mockWCSession имеет delegate, установленный на watchSessionManager.

Чтобы проверить деактивацию сеанса наблюдения, watchSessionManager вызывает функцию mockWCSession deactivate(), которая вызывает (среди прочего) своего делегата

func sessionDidBecomeInactive(_ session: WCSession)  

, который определенв WCSessionDelegate.

Проблема:

Поскольку WCSession нельзя разделить на подклассы (нет доступных инициализаторов), MockWCSession не относится к классу WCSession ине может быть вставлен как параметр в sessionDidBecomeInactive.(Конечно, можно использовать WCSession.default в качестве параметра, но это было бы некрасиво).

Вопрос:

Можно ли как-нибудь вернуть mockWCSession вsessionDidBecomeInactive

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