RN代码推送:挂接到codePushStatusDidChange的测试组件

时间:2019-05-10 16:33:36

标签: react-native code-push react-native-code-push

我正在使用react-native-code-push codePush HOC,并运行一些逻辑以响应codePushStatusDidChange事件挂钩,尤其是在状态为SyncStatus.UPDATE_INSTALLED时。 / p>

我还没有发现在开发人员模式下运行时是否有一种方法可以模拟代码推送事件,以验证我们的代码是否正确响应了事件挂钩。这可能吗,还是有必要将新版本发布到代码推送服务器?

另一个问题:如果installMode设置为codePush.InstallMode.ON_NEXT_SUSPEND,那么事件挂钩是否应该在下次重启时接收到SyncStatus.UPDATE_INSTALLED? (我想一旦我能弄清楚第一个问题,我就可以自己回答第二个问题!)。

1 个答案:

答案 0 :(得分:0)

@twelve17您好。 我可以分享有关测试和CodePush使用的经验。 我们既有e2e测试(detox + jet)也有单元测试(react-native-test-utils + jest)。 当我们运行 e2e 测试时,我们在根HOC中指定环境并切换codePush设置:

checkFrequency: isTest()
    ? codePush.CheckFrequency.MANUAL
    : codePush.CheckFrequency.ON_APP_START,

在这种情况下(手动检查和更新),在应用程序运行时,codePush不执行任何操作。它可以在e2e测试中正常工作,因为在运行它们时确实不需要任何codePush任务。

关于单元测试:我们暂时不测试HOC本身,我们仅介绍了一些无状态组件,因此在这里我只建议您跳过此类测试(因为codePush是第三方库),或者为任何命令编写自己的包装,并在测试运行时对它们进行模拟/存根。