Как использовать метод 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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