如何编写使用内容解析器获取图像的Android单元测试?

时间:2019-06-15 06:13:26

标签: android unit-testing junit mockito robolectric

我是Android单元测试的初学者。我想为以下代码编写单元测试。我找不到模拟测试中使用的图像的方法。请帮忙。

fun getLatestPictureTakenFromCamera(): String? {
    var cursor: Cursor? = null
    var latestCameraImgPath: String? = null
    try {
        val context: Context = LowesApplication.instance()
        val projection = arrayOf(MediaStore.Images.ImageColumns._ID,
                MediaStore.Images.ImageColumns.DATA,
                MediaStore.Images.ImageColumns.DATE_TAKEN,
                MediaStore.Images.ImageColumns.MIME_TYPE)
        val selectionCriteria = "${MediaStore.Images.ImageColumns.MIME_TYPE} = 'image/jpeg'"
        cursor = context.contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selectionCriteria, null, MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC")
        cursor?.let {
            if(cursor.moveToFirst()) {
                val columnIndex: Int = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA)
                latestCameraImgPath = cursor.getString(columnIndex)
                val mimeType = cursor.getString(cursor.getColumnIndex(MediaStore.Images.ImageColumns.MIME_TYPE))
                Log.d(TAG, "Latest Picture Taken From Camera - mimeType: ${mimeType}")
            }
        }
        Log.d(TAG, "Latest Picture Taken From Camera - Absolute Path: ${latestCameraImgPath}")
    } catch (e: Exception) {

    } finally {
        cursor?.let { cursor -> cursor.close() }
    }

    return latestCameraImgPath
}

0 个答案:

没有答案