
mr. Y
21.06.2017
17:49:37
headless chrome вышел?))

Nikita
21.06.2017
17:50:03

Евгений
21.06.2017
17:50:17
вышел, но я с ним сегодня весь день воюю, фигня какая-то

Google

Nikita
21.06.2017
17:50:56
selenoid?
нет, зачем он) просто ремоут браузер в контейнере

Евгений
21.06.2017
17:53:08
хм, а если всё остальное не в докере имеет смысл замарачиваться? получается нужно будет на одну виртуалку больше

Nikita
21.06.2017
17:54:24

Евгений
21.06.2017
17:54:46
само приложение, у нас всё рядышком лежит

Nikita
21.06.2017
17:54:49
самодельную не вижу смысла делать :)
и тесты в докер-контейнере бегают

Евгений
21.06.2017
17:59:46
правильно я понимаю,что есть докеры с браузерами, докер с окружением для прогона тестов, который например через гит стягивает свежие тесты?

Nikita
21.06.2017
18:00:53

Евгений
21.06.2017
18:03:48
а дженкинс тоже в докере?

Nikita
21.06.2017
18:04:22

Google

Nikita
21.06.2017
18:04:37
у меня тимсити так-то, но смысла пихать все в контейнеры нет

Roman
21.06.2017
18:27:39

Ivan
21.06.2017
18:30:27
О мы почти год назад ушли в докер, я очень проникся им, очень удобно
Докер+кубернетис

Nikita
21.06.2017
18:30:50
ага, контейнеры это космически удобно. но не для всего

Ivan
21.06.2017
18:31:15
Ну зависит от проекта
У нас все инфраструктура в контейнерах. Масштабировпться слишком удобно, будь то прод, тесты, или тестовые серваки

Nikita
21.06.2017
18:32:41
и база в контейнере? :)

Ivan
21.06.2017
18:33:18
Да
С этим отхватили проблем
Но уже все решено )

Timur
21.06.2017
18:34:01

Nikita
21.06.2017
18:34:22
мы увезли базу из контейнеров – сильно удобнее ее рулить в чистом виде

Timur
21.06.2017
18:35:09
Овна конечно я хлебнул с коммитлогами, но справился

Ivan
21.06.2017
18:35:19
У нас saas решение, по другому поставлять не удобно

Nikita
21.06.2017
18:35:53
а язык?

Ivan
21.06.2017
18:36:50
Java ,cpp Бекенд
Каждый сервис в своём контейнере

Ivan
21.06.2017
18:43:15
Привет! А кто-нибудь занимался автоматизацией тестирования через сравнение скриншотов? Интересен любой опыт, стоит ли оно усилий.

Alexander
21.06.2017
18:45:30

Google

Nikita
21.06.2017
18:45:34
смотря что ты хочешь тестировать
если не верстку – то скорее нет, чем да

Ivan
21.06.2017
18:45:53
android приложение

Nikita
21.06.2017
18:47:32
с мобильниками у меня нет никакого опыта. кто-то пытается тестировать бизнес-логику скриншотами и это так себе занятие :)

Alexander
21.06.2017
18:48:35

Ivan
21.06.2017
18:49:32
мне интересно, стоит ли вообще в это направление инвестировать время, будет ли там полезный выхлоп

Alexander
21.06.2017
18:49:56

Ivan
21.06.2017
18:50:28
а что за ребята?
из какой конторы?

Alexander
21.06.2017
18:51:01
Ответил в лс

Ivan
21.06.2017
18:51:33
да, спасибо

Nikita
21.06.2017
18:58:20

Ivan
21.06.2017
18:59:25

Евгений
21.06.2017
19:29:37
я на старой работе внедрял. там был аутсорс проект где не оплачивали регресс, но было дофига ломающейся вёрстки. делали свою штуку на рельсах, за основу брали фантом цсс. Рекламные баннеры рубили на хостах, страницы выбирали статичные - работало вроде нормально

D
21.06.2017
19:31:48

Евгений
21.06.2017
19:32:31
оно умело части определять, но мы по целой странице смотрели, требование было простое, чтобы старое ничего не отвалилось

Google

Maxim
21.06.2017
19:41:40
А чем отличается stub от mock ?
чувак, лучше забудь, что тебе наобъясняли, и всё же вчитайся в статью Фаулера, которой с тобой поделились. Или посмотри пересказ тут http://merle-amber.blogspot.ru/2008/09/mock.html

Pavel
21.06.2017
19:43:05
Чет я честно говоря не увидел практической пользы :) Я уже несколько лет делаю стабы, моки, фейки, хренейки, тестирую с помощью них. Но даже не знал что там оказывается блин есть целая теория и классификация :)

Maxim
21.06.2017
19:43:23
а то последовавшее обсуждение - какой-то треш
как ты их делаешь, если не понимаешь пользы и разницы? и зачем?

Pavel
21.06.2017
19:44:09
Это как с паттернами - используешь 5 лет свой хитрый придуманный трюк во всех проектах, приходишь на собеседование и узнаешь что это оказывается называется делегат.

Maxim
21.06.2017
19:45:50
не путай проектирование кода и виды проверок в тестах

Evgeniy
21.06.2017
19:46:19

Admin
ERROR: S client not available

Evgeniy
21.06.2017
19:46:29
factory girl или vhs
или любая другая mock либа
Фаулер, конечно, молодец, крутой чувак, но зачастую 70% дефинишн-булшита можно выбрасывать
это касается его, Еванса с его DDD, Баха и целой кучи других, которым нужно написать столько, чтобы хватило на книжку

Maxim
21.06.2017
19:48:14
да, можно спроектировать код и через известное место, но он будет работать. А стабы или моки нужно использовать в зависимости от того, что ты хочешь проверять. Например, со стабами ты не проверишь то, что можешь с моками

Evgeniy
21.06.2017
19:48:33
примеры плиз

Maxim
21.06.2017
19:48:37
одно дело проверять состояние, другое дело - поведение тестируемой сущности

Evgeniy
21.06.2017
19:48:47
тут было много сказано о теории и о том, как это интепретировать

Pavel
21.06.2017
19:48:57
Если мне нужно что-то проверить, я просто придумаю способ это проверять, и плевать как это там назовется, стаб или мок :)

Evgeniy
21.06.2017
19:49:27
и ни 1ого живого примера продакшн кода как всю эту разношерстную номенклатуру видеть и понять,, что оказывается в Python \ JS \ Ruby \ Php мире это нужно и различается

Pavel
21.06.2017
19:51:10
Ну кстати яркий пример - это то что у Фаулера называется Spy - объект который в себе счетчики содержит. Можно 10 лет городить такие объекты со счетчиками и анализаторами, подсовывать их в тестах и прекрасно жить, и умереть даже не зная что это оказывается называется *Spy* ?

Google

Maxim
21.06.2017
19:52:11

Pavel
21.06.2017
19:53:09
Ну... наверно. Я уже не помню.

Maxim
21.06.2017
19:53:58
если нет, то значит моки как раз и не использовал. возможно, от того и непонимание разницы

Pavel
21.06.2017
19:54:45
Очевидно что когда встанет такая задача, я построю прокси-объекты для этих действий, которые помимо основной функциональности будут выбивать флаги того что они выполнились, а потом в конце проверять что получилась упорядоченная последовательность.
У моего фреймворка есть всякие методы ->call(atLeastOnce()) и т.д. Это как-то называется? =)

Maxim
21.06.2017
19:55:26
а моки, в общем, и нужны, чтобы проверить не выходное значение того же метода, а то, каким образом он этого добился, что он делал внутри себя

Pavel
21.06.2017
19:58:28
Ну то есть, если 1 объект внутри использует другой, и важно понять что другой дергался, то мы другому прописываем что он был вызван 1 и только 1 раз. Такое добро было да.
Или что он ни разу не дергался, или что кинул опред. исключение.

Maxim
21.06.2017
19:59:47
интересная позиция :) когда под видом моков тебе показывают стабы, то охотно киваешь, что понял, потом то же и другим расскажешь. А при предложении посмотреть почти что на первоисточник классификации - не надо мне это всё, я и раньше как-то неплохо жил без этих знаний :)

Pavel
21.06.2017
20:04:51
Ну я не сказал что не буду это читать
Просто чуть попозже. А пока я понял что и без этого можно нормально жить.

Evgeniy
21.06.2017
20:05:13
абсолютли

Maxim
21.06.2017
20:05:28

Evgeniy
21.06.2017
20:05:29
если терминология плодит непонимание - она не нужна

Pavel
21.06.2017
20:06:50
Просто например, если я хочу чтобы метод какого-то объекта возвращал число 42, я могу создать объект и подменить у него метод, сказав что он всегда возвращает 42, а могу просто создать тестовый класс-наследник и перекрыть этот метод, вписав туда return 42. В первом случае это будет мок, во втором стаб. Но результата мы добились одного и того же.

Maxim
21.06.2017
20:07:13
в обоих случаях это обычный стаб

Evgeniy
21.06.2017
20:09:41
лучше напишите на вашем языке задачку, будет полезнее:
a.x = 1
a.x = 2
a.x
>> [1,2]

Maxim
21.06.2017
20:09:44
ты эмулируешь вывод чего-то и тебе без разницы, когда он вызывался и откуда

Pavel
21.06.2017
20:10:00
А если в классе наследнике в первый раз возвращать 42 а во второй кидать исключение то он станет моком? ?

Maxim
21.06.2017
20:10:34