Я разрабатываю приложение Android с использованием Kotlin. Я пишу интеграционные тесты для моего приложения, используя тестовую среду Expresso. Теперь я немного пытаюсь создать заглушку для результата Intent, используя намерения Expresso.
Я начинаю деятельность, используя следующий код.
val intent = Intent(Intent.ACTION_PICK)
// Sets the type as image/*. This ensures only components of type image are selected
intent.type = "*/*"
//We pass an extra array with the accepted mime types. This will ensure only components with these MIME types as targeted.
val mimeTypes = arrayOf("image/jpeg", "image/png", "video/*")
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
startActivityForResult(intent, 123)
В обратном вызове onActivityResult я буду сделайте что-нибудь с результатом
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 123) {
//do something
}
}
Что я пытаюсь сделать сейчас, так это то, что в своих тестах я пытаюсь создать заглушку Intent с помощью Intent.ACTION_PICK. Что мне нравится делать, так это то, что мне нравится начинать это намерение, используя метод intending express -intent.
Например, в документации упоминается, как запустить пакет с помощью следующего кода .
intending(toPackage("com.android.contacts")).respondWith(result)
Что я хотел бы сделать, так это то, что вместо использования toPackage я хотел бы заменить его намерением. Как я могу это сделать?