gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:54:26 25 4
gpt4 key购买 nike

我正在尝试从资源中的可绘制对象加载位图,但在单元测试中运行以下代码时它似乎是空的,但在正常 Activity 中运行时它不是空的:

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()

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

编辑

在仪器测试中运行它时,一切正常。我仍然想了解为什么在单元测试中未获得可绘制对象。

最佳答案

据我所知,这是由 Robolectric Shadow implementation of BitmapFactory 引起的它实际上并没有打开资源,而只是设置位图是由该资源“创建”的。它是一个实际上不做任何工作的 stub 实现。

当 Robolectric 看到一个具有 Robolectric Shadow 实现的对象时,它会使用 Shadow 实现而不是真实对象。有关阴影如何工作的更多详细信息,请参阅 Robolectric Shadows documentation .

关于Android robolectric 单元测试从 drawable 加载位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50208357/

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