🐈 гав-гав
я создаю экземпляр вьюмодели в тесте, и мокаю репозиторий, правильно?
🐈 гав-гав
мне нужно протестить что в вьюмодели - методе логаут я вызываю метод логают из репозитория
Aleksey
мне нужно протестить что в вьюмодели - методе логаут я вызываю метод логают из репозитория
По-хорошему, у тебя должно быть желание проверить не это, а то, что ViewModel правильно обрабатывает то, что происходит после того, как #logout вернёт результат
Aleksey
🐈 гав-гав
это фунекция проверяет был ли вызвон какой либо (тот что я напишу) метод определенное кол-во раз, да?
Aleksey
Но она подходит для сайд-эффектов, скорее Например, какой-то метод внутри себя должен отправить событие в какой-нибудь PublishProcessor, чтоб его. Поскольку отправка туда события ничего не возвращает, ты можешь просто верифицировать, что тестируемый метод реально публикует туда событие
🐈 гав-гав
я до самих тестов даже дойти не могу, мне кажется проблема в зависимостях в градле, ошибки какие то такие “Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null)” “At the moment you cannot provide own implementations of MockHandler”
🐈 гав-гав
я видел этот ответ, писал так как там, а первая ошибка видимо в том что в котлине все классы по дефолту final, и нужно создать тхт файл org.mockito.plugins.MockMaker, я создал, и походу его еще где то нужно инициализировать или обьявить
🐈 гав-гав
да, ресурсы для тестов
Aleksey
да, ресурсы для тестов
Тогда файл теста скинь через pastebin
🐈 гав-гав
аа, ну я дебил, я вписал там строку не ту
🐈 гав-гав
бляха муха
🐈 гав-гав
сорян-_-, заработало
Aleksey
🤔
Aleksey
сорян-_-, заработало
Расскажи хоть, чтобы другие в какаху не вступили
🐈 гав-гав
вписал в тот тхт файлик для мокито2 вместо “mock-maker-inline” - название файла
🐈 гав-гав
ну это скорее не на внимательность ошибка
🐈 гав-гав
или может так и написано в какой то палевной статье было, я вот не помню уже
Alex Android
потому что SOLID, вся хня
🐈 гав-гав
понял, спасибо, мейби они не везде есть, подобавляю тогда
🐈 гав-гав
так ведь должно выглядеть поидее?
Alex Android
нет. Application надо мокать как-то через таргеты
🐈 гав-гав
таргеты это что?
Alex Android
перепутал с @Rule, но это только с Dagger'ом https://medium.com/@fabioCollini/android-testing-using-dagger-2-mockito-and-a-custom-junit-rule-c8487ed01b56
🐈 гав-гав
дагер не используется в проэкте
Alex
Тогда выбор м/ду firestore/realtime, с учетом числа бесплатных операций/трафика за период.
еще смотрю https://github.com/centrifugal/centrifugo, тоже интересный проект
Сергей
Или push-ей от fcm, заодно уведомить юзеров об обновлении и принудительно обновить всех, даже тех у кого пока выключено можно, но немного сложнее в поддержке.
Сергей
еще смотрю https://github.com/centrifugal/centrifugo, тоже интересный проект
Centrifugo runs as separate service and keeps persistent Websocket or SockJS connections from your application clients Постоянный коннекшен не ок. Плюс мы имеем х.з чей продукт против поддерживаемого гуглем
Mike
Между поддерживаемым гуглом и поддерживаемым не гуглом я бы выбрал второе, там хотя бы есть шанс)
Сергей
Хотя на нем и mail.ru сидит)
Я х.з. как эт в firebase реализовано. Но вряд ли непрерывным коннектом (с учетом сна)
Сергей
Между поддерживаемым гуглом и поддерживаемым не гуглом я бы выбрал второе, там хотя бы есть шанс)
Ну, если на либе млрд пользователей - то там все баги известны и обзваны фичами. А если сто, считая исходного автора...
Сергей
Вот такой вопрос - пишется читалка книг. Есть три уровня - темы-> авторы->книги. На каждом уровне до 100 позиций, естественно есть списки и ресайклер(ы). Хотелось бы обойтись одним экраном, а может даже одним ресайклером с разными вьютайпами...как думаете, реализуемо? Хотя можно три разных ресайклера и верхние уровни просто прятать? Что логичнее для такого иерархического просмотра. Три разных фрагмента реально, но банально.
Artur
Привет, сталкивался кто с таким? No enum constant com.android.manifmerger.AttributeOperationType.TARGETAPI WorkManager
Сергей
Бойлерплейтом только
Ruslan
подскажите как нагуглить решения? надо по uuid найти bluetooth устройство, подключиться к нему и передать файлы. девайс как найти я знаю. а вот как в него передать файлы? это же не action_send
Сергей
У всех трех списков одни и те же общие поля (как минимум раздел). Их вообще можно на лету из одного генерить.
Сергей
Надстройка офлайновая к библиотеке Мошкова
Сергей
На чем выйдет. Для поездов и отпусков)
Anonymous
На чем выйдет. Для поездов и отпусков)
просто интересно было, нужно ли какие дополнительные действия завершать, чтоб свою АПК на читалку установить
Дмитрий
https://stackoverflow.com/questions/4921384/how-to-send-file-using-bluetooth-on-android-programatically
Yank
всем привет BiometricPrompt bp = new BiometricPrompt.Builder(this) .setNegativeButton("Cancel", this.getMainExecutor(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { notifyUser("Authentication cancelled"); } }) .build(); создаю диалог для аутентификации, и кнопка отмены белая, ее не видно, но она есть. как исправить этот случай?
Yank
спроект только что созданный, стили и все настройки дефолтные
Сергій
контекст с темой как здесь https://stackoverflow.com/a/56289343
iamthevoid
спроект только что созданный, стили и все настройки дефолтные
погугли как устанавливать цвет для кнопки. Скорее всего в проекте тема по дефолту тебе отдаёт белый цвет длядиалога
iamthevoid
Да, даже примеры в студии - не идеальны))
Сергій
контекст с темой как здесь https://stackoverflow.com/a/56289343
или пробуй аппкомпат либу https://developer.android.com/jetpack/androidx/releases/biometric#1.0.0-alpha04
Vladimir
Всем привет. У меня возник вопрос по RX. Очень надеюсь на вашу помощь. Собственно в 2х словах: Надо ли при создании Observable как то слушать?взаимодействовать? в subscribeOn вызовом. Подробнее: Я создаю собственный Maybe объект, далее стандартно полписываюсь на него с createMaybe() .subscribeOn(.io) .//logic .observeOn(.mainThread) .subscribe(..), но это не работает. Все вычисления происходят в main thread. Если я заменю createMaybe() на Maybe.just(..), то все работает отлично. Детальный код тут https://pastebin.com/44Gtcta2
Vladimir
Собственно что я делаю не так при создании Maybe и где посмотреть правильный пример создания Observable из Callback?
Vladimir
Очень надеюсь на вашу помощь
Vladislav
Подскажите, пожалуйста, как называется наэкранная подсказка для пользователя
Vladislav
бэк затемняется, появляется надпись, стрелочка, чтоб дать подсказку юзеру
Roman
это не стандартный элемент, либо делать самому…либо искать либу)
Vadim
всем привет а такой вот вопрос рисую себе onboarding и проставляю marginTop = 23 скажем но для разных экранов он прыгает визуально единственное решение прописывать разметку для каждого устройства в ресурсах или в процентном соотношении играться(аля space ставить и в зависимости от свободного места заполнять их)?
🐈 гав-гав
Ребят, ещё вопросик по тестам, допустим я тестю вьюмодель, в классе теста я создаю её экземпляр и в самих тестах вызываю её методы (которые тестю), вопрос: а если некоторые методы приватные? Получается в тесте нету доступа к ним, значит их не тестить?
Alex Android
приватные не тестируются. You doing it wrong
🐈 гав-гав
Понял, а если допустим в публичном методе меняется приватная переменная, то я тоже это пропускаю, да?
Alex Android
Тебе надо тестировать поведение, а не внутреннее состояние
🐈 гав-гав
Понял, блин пока не особо понимаю смысла тестирования
Alex Android
Протестировать, что при заданных входных ситуациях, твой код реагирует ожидаемо
Alex Android
Поймёшь, когда на внесение одного изменения, будет всплывать 2 бага