簡體   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