gpt4 book ai didi

android - Espresso : how to click on image click button on phone camera

转载 作者:行者123 更新时间:2023-11-30 01:18:39 25 4
gpt4 key购买 nike

我正在使用 espresso 编写测试,我的应用程序打算连接摄像头,我手动按下点击按钮,然后它迁移到下一个屏幕,我无法在测试代码中自动执行图像点击按钮,怎么能我使用代码访问相机,通过它我可以做同样的事情。谢谢。

最佳答案

您不应该打开相机 Intent,否则您将无法从中获取任何生成的图像(无需手动按下相机按钮)。

查看本网站的Stubbing out the Camera部分: https://guides.codepath.com/android/UI-Testing-with-Espresso#stubbing-out-the-camera

通过这种方式,您可以通过模拟从相机“返回”到您的应用的实际图像来测试您的 Activity 。

更新

这是我用来获取位图进行测试的方法:

public static Bitmap getTestBitmap(Context context, String resourceName) {
Resources resources = context.getResources();
Bitmap ret = null;
int imageResource = resources.getIdentifier(
resourceName, "drawable", context.getPackageName());

Uri pictureUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
+ resources.getResourcePackageName(imageResource) + '/'
+ resources.getResourceTypeName(imageResource) + '/'
+ resources.getResourceEntryName(imageResource));
try {
ret = MediaStore.Images.Media.getBitmap(context.getContentResolver(), pictureUri);
} catch (Exception e) {
}
return ret;
}

然后我将位图保存在内部存储中并获取 uri:

public static Uri saveToInternalStorage(Context context, Bitmap bitmapImage, String fileName) {
ContextWrapper cw = new ContextWrapper(context);
// path to /data/data/yourapp/app_data/pictures
File directory = cw.getDir("pictures", Context.MODE_PRIVATE);
// Create imageDir
File mypath = new File(directory, fileName);

FileOutputStream fos = null;
try {
fos = new FileOutputStream(mypath);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (Exception e) {
}
}


return Uri.fromFile(new File(mypath.getAbsolutePath()));
}

关于android - Espresso : how to click on image click button on phone camera,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37437528/

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