Size: a a a

Android Dev Подкаст

2018 March 26

ОО

Олег Осипенко in Android Dev Подкаст
Alex Gontarenko ☕
дроидкон и подкаст)
наверное все-таки https://github.com/agoda-com/Kakao
источник

D

Dmitry in Android Dev Подкаст
Collapsible toolbar кто-нибудь использует? Как научить эспрессо нормально работать со списками внутри него?
источник

D

Dmitry in Android Dev Подкаст
В контенте
источник

D

Dmitry in Android Dev Подкаст
И насколько стабильные у гостей тесты, как достичь того, чтобы результатам ui тестов можно было доверять?
источник

VG

Vladislav Grishechko in Android Dev Подкаст
@nekdenis Попроси с хэштэгом вопросы публиковать, а то легко потеряться могут.
источник

RB

Roman Byakov in Android Dev Подкаст
Вот и решение вопроса по вопросам по подкасты, чтоб были так называемые триды
источник

DN

Denis Nek (slow response) in Android Dev Подкаст
я записываю
источник

VG

Vladislav Grishechko in Android Dev Подкаст
Какой network слой лучше мокировать в UI тестах? В моделях (интеракторы например), okhttp или поднимать локальный сервер? Все за и против.
источник

VG

Vladislav Grishechko in Android Dev Подкаст
Когда запускать UI тесты? Имеется CI и стандартный git flow например.
источник

IB

Ivan Balaksha in Android Dev Подкаст
Ох холиварная тема :)
источник

AM

Alexey Misiulia in Android Dev Подкаст
Лучше ли подменять все потоки на главный в UI тестах? Если да, то как быть с (асинхронными) транзакциями фрагментов во время UI тестов (они банально не добавляются, когда всё выполнять в одном потоке)?
источник

DN

Denis Nek (slow response) in Android Dev Подкаст
commitnow
источник

VG

Vladislav Grishechko in Android Dev Подкаст
Alexey Misiulia
Лучше ли подменять все потоки на главный в UI тестах? Если да, то как быть с (асинхронными) транзакциями фрагментов во время UI тестов (они банально не добавляются, когда всё выполнять в одном потоке)?
Транзакции запускаются в UI потоке, а espresso (если им пользуешься) ждет пока на ui потоке все выполнится и будет "тихо".
источник

VG

Vladislav Grishechko in Android Dev Подкаст
А если у тебя есть ситуации, когда нужно подождать что-то, то можно использовать эту либу:
https://github.com/AzimoLabs/ConditionWatcher

и обернуть это в kotlin, то получится что-то вроде этого:
waitWhenConditionMeet("Wait when list loaded", {
           screenRule.activity.findViewById(R.id.recycler).visibility == View.VISIBLE
       })
источник

AM

Alexey Misiulia in Android Dev Подкаст
Vladislav Grishechko
Транзакции запускаются в UI потоке, а espresso (если им пользуешься) ждет пока на ui потоке все выполнится и будет "тихо".
Спасибо за либу. Единственное, что не нравится: необходимо везде в тестах писать wait, на всё, что должно было бы выполниться за время запроса (допустим добавление фрагмент диалога, создание ViewPager). Если бы запрос освободил UI поток, то все эти действия вклинились в очередь задач и  успели бы выполниться.

Решение, которым я сейчас пользуюсь: библиотека от JakeWharton, которая заставляет эспрессо дожидаться выполнения фоновой задачи. https://github.com/square/RxIdler.
Плюс: не надо писать никаких wait, подменяешь Scheduler в графе один раз и всё работает из коробки.
Минус: создаёт новый поток.

Вот и не знаю, нормальное ли это решение или есть что-то получше?

P.S: Если не используешь Rx, а, допустим, запускаешь таски с помощью корутин, то там немного сложнее получается, но тоже решаемо
источник

VG

Vladislav Grishechko in Android Dev Подкаст
Alexey Misiulia
Спасибо за либу. Единственное, что не нравится: необходимо везде в тестах писать wait, на всё, что должно было бы выполниться за время запроса (допустим добавление фрагмент диалога, создание ViewPager). Если бы запрос освободил UI поток, то все эти действия вклинились в очередь задач и  успели бы выполниться.

Решение, которым я сейчас пользуюсь: библиотека от JakeWharton, которая заставляет эспрессо дожидаться выполнения фоновой задачи. https://github.com/square/RxIdler.
Плюс: не надо писать никаких wait, подменяешь Scheduler в графе один раз и всё работает из коробки.
Минус: создаёт новый поток.

Вот и не знаю, нормальное ли это решение или есть что-то получше?

P.S: Если не используешь Rx, а, допустим, запускаешь таски с помощью корутин, то там немного сложнее получается, но тоже решаемо
В каком-то докладе Juno говорили о том, что они с таким подходом выстрелили себе в ногу. Тесты не проходили иногда. Но может это было в RxJava 1.x, а в 2.x поправили.
источник

AM

Alexey Misiulia in Android Dev Подкаст
Vladislav Grishechko
В каком-то докладе Juno говорили о том, что они с таким подходом выстрелили себе в ногу. Тесты не проходили иногда. Но может это было в RxJava 1.x, а в 2.x поправили.
Хм, спасибо за инфу, не знал)
источник

DN

Denis Nek (slow response) in Android Dev Подкаст
Alexey Misiulia
Спасибо за либу. Единственное, что не нравится: необходимо везде в тестах писать wait, на всё, что должно было бы выполниться за время запроса (допустим добавление фрагмент диалога, создание ViewPager). Если бы запрос освободил UI поток, то все эти действия вклинились в очередь задач и  успели бы выполниться.

Решение, которым я сейчас пользуюсь: библиотека от JakeWharton, которая заставляет эспрессо дожидаться выполнения фоновой задачи. https://github.com/square/RxIdler.
Плюс: не надо писать никаких wait, подменяешь Scheduler в графе один раз и всё работает из коробки.
Минус: создаёт новый поток.

Вот и не знаю, нормальное ли это решение или есть что-то получше?

P.S: Если не используешь Rx, а, допустим, запускаешь таски с помощью корутин, то там немного сложнее получается, но тоже решаемо
использование Espresso Idling Resource всегда нормальное решение
источник

IB

Ivan Balaksha in Android Dev Подкаст
Denis Nek (slow response)
использование Espresso Idling Resource всегда нормальное решение
И снова +
источник

AE

Alexander Efremenkov in Android Dev Подкаст
Может лучше в выпуске?
источник