是否可以在sessionDidBecomeInactive中返回模拟的WCSession?

时间:2018-10-23 09:24:45

标签: ios unit-testing mocking watch-os wcsession

我有一个应用程序,它通过我自己的WCSession实例WatchSessionManager使用watchSessionManager实例在iOS和watchOS之间进行通信。 WatchSessionManager采用WCSessionDelegate协议。
在正常操作期间,将使用WCSession.default,但是在单元测试期间,将使用MockWCSession实例mockWCSessionmockWCSession的{​​{1}}设置为delegate

要测试对监视会话的停用,请在watchSessionManager函数watchSessionManager中调用mockWCSession,该函数将在其委托中调用

deactivate()

func sessionDidBecomeInactive(_ session: WCSession) 中定义。

问题:

由于WCSessionDelegate不能被子类化(没有可访问的初始化程序),因此WCSession不属于MockWCSession类,并且不能作为参数插入WCSession中。 (当然可以使用sessionDidBecomeInactive作为参数,但这很丑陋。)

问题:

是否可以通过某种方式在WCSession.default中返回mockWCSession

0 个答案:

没有答案