我有一个应用程序,它通过我自己的WCSession
实例WatchSessionManager
使用watchSessionManager
实例在iOS和watchOS之间进行通信。 WatchSessionManager
采用WCSessionDelegate
协议。
在正常操作期间,将使用WCSession.default
,但是在单元测试期间,将使用MockWCSession
实例mockWCSession
。 mockWCSession
的{{1}}设置为delegate
。
要测试对监视会话的停用,请在watchSessionManager
函数watchSessionManager
中调用mockWCSession
,该函数将在其委托中调用
deactivate()
在func sessionDidBecomeInactive(_ session: WCSession)
中定义。
问题:
由于WCSessionDelegate
不能被子类化(没有可访问的初始化程序),因此WCSession
不属于MockWCSession
类,并且不能作为参数插入WCSession
中。 (当然可以使用sessionDidBecomeInactive
作为参数,但这很丑陋。)
问题:
是否可以通过某种方式在WCSession.default
中返回mockWCSession
?