gpt4 book ai didi

ios - E2E : Select an image from a UIImagePickerController with Wix Detox

转载 作者:可可西里 更新时间:2023-11-01 05:39:53 27 4
gpt4 key购买 nike

描述

我需要编写一个 e2e 测试,在某些时候它必须在 UIImagePickerController 中选择一个图像,我尝试使用 element(by.type('UIImagePickerController'))。 tapAtPoint() 没用。我需要一种选择图像的方法。我找到了 way使用 native 测试来完成。

对于我来说,模拟也不是一种选择,因为我使用了 react-native-repackeger 需要的更高版本。

重现步骤
  • 与任何使用图像选择器的应用程序一起使用

  • 尝试使用 element(by.type('UIImagePickerController')).tapAtPoint({ x: 50, y: 200 })

排毒、节点、设备、Xcode 和 macOS 版本
  • 排毒:6.0.2
  • 节点:8.9.0
  • 设备:iOS 模拟器 6s
  • Xcode:9.2
  • 苹果操作系统:10.13.1
  • React-Native:0.46.4
设备和详细的排毒日志

没有日志,设备点击了正确的位置,但点击没有效果。

最佳答案

注意到原始问题指出在所呈现的案例中模拟不是一个选项,但我在搜索解决方案时遇到了这个 Stack Overflow 问题几次,并想分享我最终针对我的情况得出的结论。

通过在我自己的导出中包装 react-native-image-picker,我能够绕过 e2e 测试的限制:

ImagePicker.js

import ImagePicker from 'react-native-image-picker';

export default ImagePicker;

然后使用自定义扩展创建模拟(即 e2e.js):

ImagePicker.e2e.js

const mockImageData = '/9j/4AAQSkZ...MORE BASE64 DATA OF CUTE KITTENS HERE.../9k=';

export default {
showImagePicker: function showImagePicker(options, callback) {
if (typeof options === 'function') {
callback = options;
}

callback({
data: mockImageData,
});
},
};

最后,配置 metro bundler 以优先考虑您的自定义扩展:

[项目根目录]/rn-cli.config.js

const defaultSourceExts = require('metro-config/src/defaults/defaults')
.sourceExts;

module.exports = {
resolver: {
sourceExts: process.env.RN_SRC_EXT
? process.env.RN_SRC_EXT.split(',').concat(defaultSourceExts)
: defaultSourceExts,
},
};

然后在 RN_SRC_EXT 环境变量设置为自定义扩展的情况下运行:

RN_SRC_EXT=e2e.js react-native start

参见 Detox Mocking Guide获取更多信息。

关于ios - E2E : Select an image from a UIImagePickerController with Wix Detox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48208456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com