使用文件扩展名 e2e.js 进行排毒模拟

Posted

技术标签:

【中文标题】使用文件扩展名 e2e.js 进行排毒模拟【英文标题】:Detox mocking using file extension e2e.js 【发布时间】:2018-10-06 12:07:29 【问题描述】:

我使用 Detox 作为 React Native 应用程序的端到端测试框架。我想模拟 API 请求的结果,以减少测试的脆弱性和时间。

根据documentation,我应该可以让 Metro 使用文件扩展名 e2e.js 覆盖一个模块。

我无法让这个工作,我不完全确定为什么。大多数文档和现有问题都与使用 react-native-repackager 有关,但从 RN 0.55.0 开始,不再需要。

任何帮助/想法将不胜感激!

编辑:

RN_SRC_EXT=e2e.js react-native start 工作正常

RN_SRC_EXT=e2e.js xcodebuild -project <other params> 作为 detox 构建脚本,detox test -c ios.sim.release 不起作用

【问题讨论】:

您能分享您的 CLI 配置文件吗?我无法完成这项工作。 rn-cli.config.js module.exports = getSourceExts: () => process.env.RN_SRC_EXT ? process.env.RN_SRC_EXT.split(',') : [], ; @milo 能否分享一下你的 Api.e2e.js 看看你是如何处理 api 调用的? Api.e2e.js 只是导出了与 Api.js 相同的函数,除了它们只会返回解析为我们模拟输出的承诺。我们不再使用它,我可能会建议使用类似 nock 的东西来更真实地模拟 api 调用 我在 react-native 0.61.5 中有这个问题!!有什么想法吗? 【参考方案1】:

rm -rf ios/build

必须清除我以前的构建缓存和文件,然后它才起作用:)

【讨论】:

【参考方案2】:

对我来说,binaryPath 和实际的二进制路径不匹配。

【讨论】:

以上是关于使用文件扩展名 e2e.js 进行排毒模拟的主要内容,如果未能解决你的问题,请参考以下文章

遵循排毒模拟实施但不工作

排毒:向应用程序发送参数的最佳方式

使用开玩笑超时错误进行排毒:“分配给未定义”

使用chrome扩展自动执行文件浏览操作

如何为排毒 e2e 测试提供自定义测试文件路径

iOS 8:如何正确设置扩展以使用模拟器在 Xcode 中对其进行调试?