Глеб
по ведай нам как ты по тдд - решишь эту задачу
и как тесты помогут тебе "ничего не поломать"
Aleksey
Но во влажных мечтах видится, что QA будет отдыхать на регрессии, если появится полноценный процесс UI и Unit тестирования.
Denys
Aleksey
по ведай нам как ты по тдд - решишь эту задачу
Не все кейсы удобно крыть тестами - это факт
Глеб
и как тесты помогут тебе "ничего не поломать"
чо будем тестировать? isКамераСтартед isФайлСэйвУасCalled?
Aleksey
и как тесты помогут тебе "ничего не поломать"
Удачного рефакторинга без тестов :)
Aleksey
чо будем тестировать? isКамераСтартед isФайлСэйвУасCalled?
По-моему ты привёл один из немногих кейсов, когда тесты не нужны.
Глеб
Удачного рефакторинга без тестов :)
Так он и самый удачный - дада когда ты рефакторишь только код а не код и тесты))
Глеб
По-моему ты привёл один из немногих кейсов, когда тесты не нужны.
Есть стата по популярности кейсов? Окей - авторизация через соц сети смс код - подтверждения (перехват в аппе)
Aleksey
Так он и самый удачный - дада когда ты рефакторишь только код а не код и тесты))
Где гарантия, что воспроизвел все кейсы и ничего не сломал?
Aleksey
Есть стата по популярности кейсов? Окей - авторизация через соц сети смс код - подтверждения (перехват в аппе)
Авторизация через соц.сеть - моки на уровне слоя данных + вера в то, что SDK протестирован поставщиком. СМС - зависит от способа перехвата, но в общем кейсе - моки.
Aleksey
Ты слишком простые примеры приводишь. 💁‍♂️
Глеб
Где гарантия, что воспроизвел все кейсы и ничего не сломал?
100% гарантия - на все 100% кейсов - оверхэд (как минимум экономический) самые критически ключевые - все равно будут перепроверены в ручную
Aleksey
100% гарантия - на все 100% кейсов - оверхэд (как минимум экономический) самые критически ключевые - все равно будут перепроверены в ручную
Сомневаюсь, что ты пойдёшь генерить все кейсы вручную, если они зависят от состояния на сервере.
Глеб
Сомневаюсь, что ты пойдёшь генерить все кейсы вручную, если они зависят от состояния на сервере.
Да мне все - нахрен не нужны, если я не тупо кодер. Я в курсе приоритетности кейсов)
Глеб
Если ты не тупо-кодер, то тупо-кто?
я тупо - тот кто понимает - бизнес приоритеты
Aleksey
я тупо - тот кто понимает - бизнес приоритеты
Дай бог чтобы тот для кого ты тупо-понимаешь-бизнес-приоритеты знал это и ценил)
Михаил
Хороший диалог у вас тут 😂
Егор
Эм, слегка странный вопрос, но переклинило. Создаю фрагмент, в нем текст вью и переменная. Как прописать значение переменной в текст вью?
Егор
Слишком странный и не имеет отношения к тестам :(
Не знал, что тут можно обсуждать только тесты
Aleksey
Егор
setText((переменная).toString)) не катит?
Я заглючил на части, где обращение к TextView))
Егор
Да, шел 16й час бодрствавания))
Глеб
Но до ближайшего фак-апа
например? зеленые тесты окруженные сплошным моком -имеют - тот же самый риск нестабильности, но при этом увеличивают кодовую базу поддержку и сроки на реализацию вдвое
Anonymous
@aa_foo Скинь свой код где ты юзаешь Context через ContenReposiory
Alex Yastrebov
Я заглючил на части, где обращение к TextView))
уже разобрался или не получается?
Aleksey
Именно это он и ценит в первую очередь.
На самом деле спор ни о чём. Тесты - хорошо, но долго. Тесты действительно спасут от сломанной бизнес логики в случае масштабных изменений и рефакторингов. При нехватке ресурсов править тесты не имеет смысла. Если нужно быстро писать и быстро в прод - можно без тестов. Вот и всё.
Егор
уже разобрался или не получается?
Сек, пишу. Ща проверю и отпишу)
Aleksey
@aa_foo Скинь свой код где ты юзаешь Context через ContenReposiory
В чате 5,203 участника. Тэгай кого-либо другого.
Глеб
Я не против тестов - но я еще не видел не одного действительно грамотного человека в тестировании Android приложений. Кроме blah-blah
Сек, пишу. Ща проверю и отпишу)
Это гуглится легко если что
Глеб
Из ситуации надо исходить, а не человека.
ситуацию я привел - с камерой и прочим
Aleksey
ситуацию я привел - с камерой и прочим
Уже решили, что в ней тестировать нечего.
Глеб
редкий кейс? это кто сказал?
Denys
ситуацию я привел - с камерой и прочим
Навскидку. Screenshot testing отлично подойдет для покрытия таких задач.
Aleksey
редкий кейс? это кто сказал?
Я сказал. У меня нет необходимости тестировать камеру.
Глеб
большинство кейсов такие или подобные... сильно платформенные
Denys
большинство кейсов такие или подобные... сильно платформенные
А бизнес-логики и других пользовательских сценариев у вас нет?
Глеб
А бизнес-логики и других пользовательских сценариев у вас нет?
пользовательские сценарии навигации - тестировать? или ретрофит?
Глеб
А бизнес-логики и других пользовательских сценариев у вас нет?
ну ок - есть ограничение на длину поля ввода, на формат допустимой строки...
Aleksey
большинство кейсов такие или подобные... сильно платформенные
Ну хз. У меня маппер-фильтр, который обрабатывает сообщения на сокете в зависимости от своих параметров. Если бы я его переписывал без тестов, то я все сломал бы. Просто потому, что проект старый, информации о работе сервера нет, а тесты есть. 💁‍♂️ В ином случае я бы просто не смог гарантировать сохранность поведения.
Глеб
чо? регулярочкой не? никак?
Глеб
надо всё тестами покрыть замокать ?
Aleksey
И написано тобой с нуля. (Сорян, «ты»-каю, потому что здесь все свои и братаны с пелёнок)
Aleksey
маппер фильтр ? шта? ты ща про функциональное - реактвное?
Не важно про что. Просто есть кусок кода между WebSocket и остальным приложением, который получает на вход JSON строку и обрабатывает согласно правилам.
Егор
Это гуглится легко если что
Да вроде написал норм, но "android.content.res.Resources$NotFoundException: String resource ID #0x1". Обидно, хотелось доделать, но видать уже на свежую голову надо))
Aleksey
ну ок а что тебе тесты дают?
Тесты помогли мне убедиться, что функция работает так же, как и до того, как я начал её менять.
Глеб
более того - зачем её менять - если результат должен остаться прежним?
Егор
Всё, я ретард, я разобрался. Забыл инт в стринг передать. Спасибо всем, сорян, что дернул, надо отоспаться)))
Aleksey
ну ок а что тебе тесты дают?
Сложно объяснить, пока не попробуешь. Я сначала потер все тесты и пошёл херачить напролом. Но потом что-то рухнуло. Вернул тесты, начал гонять их и нашёл ошибку.
Глеб
Ну ...сорян ...мне этой глубокой философии видимо не понять. Я знаю точно что если андроид разработчик - пишет тесты и чистый код но как записать видос с ватермарком - не знает ... то видимо - не такой уж он Андроид-Разработчик
Глеб
он может Быть Юнит-Тестс девелопер
Aleksey
более того - зачем её менять - если результат должен остаться прежним?
Чтобы лишнее из кода убрать и выкинуть. Функция была реализована в двух классах - один выпаршивал ошибки и кидал исключение, другой (в случае если первый ничего не сделал) обрабатывал положительный кейс с данными. Я посчитал это неадекватным и объединил все в одну коробочку.
Глеб
он может Быть Юнит-Тестс девелопер
или клин-абстрэкшионс девелопер
Глеб
но не андроид)
Aleksey
он может Быть Юнит-Тестс девелопер
Попробуй не окрашивать всё только в чёрное и белое - каждый решает разные задачи бизнеса Тебе довелось решать задачи с видео-потоком, я решаю задачи с расчётом внутри приложения
Aleksey
Ты сейчас 90% чата в дерьмо окунул лицом, если что - все же с водными знаками работали
Глеб
а что все с тестами серьезно работают?
Aleksey
Aleksey
Короче, ты уже не в ту сторону свернул. Про тесты разговор окончен.
Глеб
но в целом и у меня всё ) еще больше убедился - что про тесты орут как правило те кто очень далек от них настоящих)