[英]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()
我真的不明白發生了什么,因為無論我在應用程序中還是在測試中運行相同的代碼,都會產生不同的結果。
編輯
在有工具的測試中運行此程序時,一切正常。 我仍然想了解為什么在單元測試中無法獲得可繪制對象。
據我所知,這是由BitmapFactory的Robolectric Shadow實現引起的,該實現實際上並未打開資源,而只是將Bitmap設置為由該資源“創建”。 這是一個存根實現,實際上不做任何工作。
當Robolectric看到具有Robolectric Shadow實現的對象時,它將使用Shadow實現而不是真實對象。 有關陰影如何工作的更多詳細信息,請參見Robolectric Shadows文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.