Как использовать метод Uri.parse() во время тестирования?Android

Форум для тех, кто программирует под Android
Anonymous
Как использовать метод Uri.parse() во время тестирования?

Сообщение Anonymous »

Я работаю над проектом Android и хочу сохранить URI ресурса в базе данных, используя библиотеку Room.
Поскольку Room не поддерживает сложные типы данных, я создал TypeConverter с именем stringToUri(string: String?): Uri?.
Вот определение типа Конвертер:

Код: Выделить всё

@TypeConverter
fun stringToUri(string: String?): Uri? {
return Uri.parse(string)
}
Теперь я хотел протестировать конвертер перед его использованием. Поэтому я создал TestFunciton с именем Converter_uriToString_validUri_returnsString().
Вот определение тестовой функции:

Код: Выделить всё

@Test
fun testStringToUri_validString_returnsUri() {

val expectedUri = Uri.parse("content://media/external/audio/media/42")    // Line 165
val actualUri = converter.stringToUri("content://media/external/audio/media/42")

assertEquals(expectedUri, actualUri)
}
Но тест завершается неудачно со следующей ошибкой/сообщением:

Разбор метода в android.net.Uri не имитируется. Подробнее см. https://developer.android.com/r/studio- ... not-mocked.

java.lang.RuntimeException: анализ метода в android.net.Uri не высмеивается. Подробности см. на https://developer.android.com/r/studio- ... not-mocked.

на android.net.Uri.parse(Uri.java)

Я новичок в разработке Android, и это мой первый проект. Можете ли вы помочь мне справиться с этой ошибкой?
Что я сделал
Я создал тестовую функцию, которая будет проверять TypeConverter с именем uriToString(uri: Uri?): String?.
Что я ожидал
Я ожидал, что TypeConverter вернет ожидаемую строку после преобразования и тестовая функция пройдет успешно.
Что на самом деле получилось
Тестовая функция завершилась неудачей с сообщением:

java.lang.RuntimeException at ConverterTest.kt:165


Подробнее здесь: https://stackoverflow.com/questions/771 ... le-testing

Вернуться в «Android»