Vitaly
Я не предлагал реальное api тестить, я предлагал внутри Dagger заменять реализацию сервера
Vitaly
Но как я понял, Dagger оказывается используется не для этого, но для чего тогда?
Сергій
тогда я не так тебя понял )
Сергій
но да, даггер не нужен )
Himars
Для реализации паттерна DI
Vitaly
Roman
Himars
Бля я же выше писал
Himars
Вот
Himars
Для того что-бы код был тестируемый необходимо кодить следуя неким правилам, например:
Принципы инверсии управления
1. Модули верхних уровней не должны зависеть от модулей нижних уровней. Модули обоих уровней должны зависеть от абстракций.
2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Недостатки дизайна, которые устраняются с применением Инверсии управления
1. Жесткость. Изменение одного модуля ведет к изменению других модулей.
2. Хрупкость. Изменения в одной части приводят к неконтролируемым ошибкам в других частях программы.
3. Неподвижность. Модуль сложно отделить от остальной части приложения для повторного использования и тестирования
P.S. плюс не забывать по максимуму абстрагироваться от Android фреймворка
Vitaly
Бля я же выше писал
Так это без Dagger реализуется в разы легче используя обычный паттерн DI
Himars
Но если вы считаете что это все херня то мне нечего добавить)
Глеб
Глеб
как это делать расскажи?
Разделитель - "|"
текст слева будет слева прижат, справа - справа
если RTL - то наоборот
Konstantin
Глеб
здорово, спасибо
Пожалуйста, там кроме этого, вроде ничего не задето, так что все любимые темы,стили,размеры работают как обычно...единственное но! осторожнее с арабским, помнится с ним иногда чп происходили, даже крэши
Vitaly
Himars
А использование в тестах и подмена модулей - это уже больше как приятный бонус
Vitaly
Vitaly
Пока что моё понимание Dagger 2 такое: для абстракции
Vitaly
Himars
Так dagger это не DI фреймворк?
Himars
Все, я устал
Himars
В некоторых случаях можно использовать lazy инициализацию зависимостей
Vitaly
Что я не могу сделать без Dagger? Какие преимущества он предоставляет относитьльно классического DI паттерна?
Vitaly
Я применял
Vitaly
Просто раньше я воспринимал Dagger как связку паттернов Factory + DI, тогда я её реально высоко ценил
Tishka17
Vitaly
Tishka17
Vitaly
Сегодня перевернулся мой мир видения Dagger
Vitaly
Спасибо вам
Himars
А какой смысл все оборачивать?
Если у вас на экране три кнопки и на каждую из них нужно выполнить отдельное действие, то действие можно инкапсулировать в объект и заинжектить как lazy
Вы же не знаете что юзер нажмёт на все три кнопки..
Alex
всем привет. Щепитильный вопрос возник. Кто знает бест практис по загрузке средних, скажем так, битмапов в нотификацию?
Himars
Vitaly
Tishka17
Tishka17
Надо ставить через npm и т.п.
Vitaly
Тестить отправку результата на сервер (на ТЕСТОВЫЙ сервер) нужно в JUnit тестах, верно?
Vitaly
Я подменяю реализацию сервера через DI без Daggerа и получаю результаты из тестового сервера, верно?
Vitaly
Может у меня ещё раз перевернётся картина видения этого мира)
Tishka17
Кстати, интересно. Как люди делают интеграционные тесты. Ведь надо чистый сервер развернуть, создать на нем нужные данные и потом андроид к нему приводить
Vitaly
Что нет?
Vitaly
То есть я должен использовать Dagger в JUnit тестах?
Vitaly
Presenter
Vitaly
Он создаёт зависимости внутри Presenter
Vitaly
Логично ведь
Himars
Нужно инжектить зависимости в конструктор
Tishka17
Vitaly
Вот правильно)) А теперь что я говорил в начале...
Vitaly
Я подменяю реализацию сервера через DI без Daggerа и получаю результаты из тестового сервера, верно?
Himars
Смотря где он впервые вызывается
Если в onCreate то нет смысла использовать lazy
Himars
Слыхали за продюсеров в даггере? Я так понял это не к мобилкам на вооружение..
Или же есть смысл использовать?
Vitaly
Походу я лишь на словах не пойму, нужен пример
Vladislav
Vitaly
Буду очень благодарен
Vladislav
Подскажите, пожалуйста, в чем может быть проблема, он же уже умеет на русском говорить)
Tishka17
Himars
“Instrumentation testing with MockWebServer and Dagger2” https://medium.com/mindorks/instrumentation-testing-with-mockwebserver-and-dagger2-56778477f0cf
Himars
Vitaly
Что такое флейвор?
Himars
Это вообще высший пилотаж
Vitaly
Понятно, спасибо)
Himars
Ну да
Но я о таком даже не думал))
Флевор для тестового сервера. Кулл
в модуле типо if (BuildConfig.DEBUG)
return одно
else
return другое?
Himars
Кул
спс за идею
Himars
Билд type
Himars
Бля
Точно билд)
Vitaly
Сырые ресурсы, которые будут переданы в Dagger и mock, который я буду передавать в тестах - это разные вещи?
Himars
А есть пример такого на каком нибудь проекте?
R
А зачем.. есть же полиморфизм..