繁体   English   中英

Android Robolectric单元测试从drawable加载位图

[英]Android robolectric unit test load bitmap from drawable

我正在尝试从资源中的可绘制对象加载位图,但是当在单元测试中运行以下代码时,该位图似乎为空,而从正常活动运行时,该位图则为空:

val bitmapImage = BitmapFactory.decodeResource(context!!.resources, R.drawable.my_image)
val bos = ByteArrayOutputStream()
val quality = 10
bitmapImage.compress(Bitmap.CompressFormat.JPEG, quality, bos)
val pixels = bos.toByteArray()

我真的不明白发生了什么,因为无论我在应用程序中还是在测试中运行相同的代码,都会产生不同的结果。

编辑

在有工具的测试中运行此程序时,一切正常。 我仍然想了解为什么在单元测试中无法获得可绘制对象。

据我所知,这是由BitmapFactoryRobolectric Shadow实现引起的,该实现实际上并未打开资源,而只是将Bitmap设置为由该资源“创建”。 这是一个存根实现,实际上不做任何工作。

当Robolectric看到具有Robolectric Shadow实现的对象时,它将使用Shadow实现而不是真实对象。 有关阴影如何工作的更多详细信息,请参见Robolectric Shadows文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM