0

我正在使用react-native-code-push codePushHOC,并运行一些逻辑来响应codePushStatusDidChange事件挂钩,特别是当状态为SyncStatus.UPDATE_INSTALLED.

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

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

4

1 回答 1

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 是第 3 方库)或编写您自己的任何命令的包装器,并在测试运行时模拟/存根它们。

于 2019-05-29T09:44:46.297 回答