Size: a a a

Android Architecture

2020 May 22

СА

Семен Александров... in Android Architecture
Sergey8827
ноу, всю реализацию лучше держать прайвет.  Конкретно у себя щас увидел, лучше вынести логику генерирующую данные в классы - источники данных,  и замокать, и стараться тестить внешнее апи
ну это понятно, а если именно тестить те приватные методы, то наверно только так
источник

S

Sergey8827 in Android Architecture
Семен Александров
ну это понятно, а если именно тестить те приватные методы, то наверно только так
ну да без рефлексии
источник

AD

Aleksey D. in Android Architecture
Sergey8827
ноу, всю реализацию лучше держать прайвет.  Конкретно у себя щас увидел, лучше вынести логику генерирующую данные в классы - источники данных,  и замокать, и стараться тестить внешнее апи
не тестировать приватные методы 🤷
источник

O

Ofdrykkja in Android Architecture
Sergey8827
подскажите пожалуйста если я в тестах хочу дернуть приватные методы в презентере. Получается это только через рефлексию?
получается, что твой код не тестируемый. пиши через тдд и будет тебе счастье
источник

AO

Artem Osipov in Android Architecture
Ofdrykkja
получается, что твой код не тестируемый. пиши через тдд и будет тебе счастье
против всего плохого и за все хорошее
источник

S

Sergey8827 in Android Architecture
Aleksey D.
не тестировать приватные методы 🤷
так я не их тестирую приватные методы. Хотел поменять в приватном поле, например если у меня в поле листенер, или лив дата, и вызвать в нем ивент например
источник

AO

Artem Osipov in Android Architecture
Sergey8827
так я не их тестирую приватные методы. Хотел поменять в приватном поле, например если у меня в поле листенер, или лив дата, и вызвать в нем ивент например
по-идее: у тебя есть паблик методы, ты должен их дергать и смотреть на результат. Какая разница что там в приватных полях и методах происходит?
источник

S

Sergey8827 in Android Architecture
Artem Osipov
по-идее: у тебя есть паблик методы, ты должен их дергать и смотреть на результат. Какая разница что там в приватных полях и методах происходит?
у мня есть типа листенер внутри
private var imageUpdateListener: ImageUpdateListener? = null

private suspend fun waitFirmwareUpdate() = suspendCoroutine<Boolean> {
       imageUpdateListener = object : ImageUpdateListener {
           override fun onProgress(progress: Int) {
               Log.i("ImageUpdateListener", "on progress $progress")
           }

           override fun onImageFinalize() {
               it.resume(true)
           }
       }
   }
я его иничу когда подписываюсь на источник данных . Но это внутри,  waitFirmwareUpdate() вызовиться при вызове публичного метода.
я решил дернуть imageUpdateListener  после тогда как вызову публичный метод, который вызовет waitFirmwareUpdate()
источник

S

Sergey8827 in Android Architecture
я хотел сам вызвать override fun onImageFinalize() {} сразу как вызовиться
источник

S

Sergey8827 in Android Architecture
waitFirmwareUpdate()
источник

S

Sergey8827 in Android Architecture
но в принципе можно извне это все завести , например вызвав
override fun receivedStatus(name: StatusEvent, value: Any)
котлрый дернить интерфейс
поэтому не обязательно внутри лезть через рефлексию, просто потом понял после того как спросил
источник

S

Sergey8827 in Android Architecture
Ofdrykkja
получается, что твой код не тестируемый. пиши через тдд и будет тебе счастье
ты пишешь проекты при помощи тдд?
источник

O

Ofdrykkja in Android Architecture
Sergey8827
ты пишешь проекты при помощи тдд?
было дело
источник

S

Sergey8827 in Android Architecture
Ofdrykkja
было дело
пет проект или продакшен?))
источник

O

Ofdrykkja in Android Architecture
был продакшен, был пет
источник

S

Sergey8827 in Android Architecture
я просто если и пробывал тдд это было раз или два)) иногда так даже легче когда не видишь как реализовать метод, но кажется что это гораздо дольше
источник

O

Ofdrykkja in Android Architecture
дольше для простых задач, а там где сложная логика какая-то, то в разы быстрее — много экономишь времени на самопроверке и отладке. ну и в целом на проекте экономия времени по причине отсутствия регресса
источник

S

Sergey8827 in Android Architecture
Ofdrykkja
дольше для простых задач, а там где сложная логика какая-то, то в разы быстрее — много экономишь времени на самопроверке и отладке. ну и в целом на проекте экономия времени по причине отсутствия регресса
ну да не нужно билдить под девайс чтобы проверить проходит логика или нет . мне вот как раз в таком моменте было лень  каждый раз запускать на девайсе
источник

MM

Mikhail Mustakimov in Android Architecture
Насколько нормально работает Java 8 library desugaring in D8 and R8 с java.time? Или все-таки пока лучше продолжать пользоваться threetenabp?)
источник

MM

Mikhail Mustakimov in Android Architecture
В проекте используются ZonedDateTime, LocalDate, форматтеры для отображения, а так же приведение к таймзоне пользователя
источник