【问题标题】:Android robolectric unit test load bitmap from drawableAndroid robolectric 单元测试从 drawable 加载位图
【发布时间】:2018-05-07 06:37:59
【问题描述】:

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

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

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

编辑

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

【问题讨论】:

    标签: android bitmap kotlin drawable robolectric


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      相关资源
      最近更新 更多