
Shoo
11.07.2018
08:41:47
Теперь почитай статью про то, почему ооп не зло, и все будет хорошо.

Евгений
11.07.2018
08:43:33
ды там всегда одно и тоже общее пишут, хотел живых примеров где без этого никак

Shoo
11.07.2018
08:44:58
Нет случаев, когда без этого никак.
Это просто один из подходов, со своими плюсами и минусами.

Google

Alexei
11.07.2018
08:47:52

Roma
11.07.2018
08:57:28

Ilya
11.07.2018
09:05:39

Евгений
11.07.2018
09:06:01
вот ее я вчера и читал :)))

Ilya
11.07.2018
09:06:48
На самом деле там не сказано что ооп зло. Там сказано, что не все вещи надо запихивать в ооп, достаточно обычной функции.

Евгений
11.07.2018
09:07:33
да, но тестирование обычно и есть простые функции
ну хотя я не могу за всех говорить

Ivan
11.07.2018
09:07:48
хороший наброс )

Ilya
11.07.2018
09:09:39
да, но тестирование обычно и есть простые функции
Простой пример. У меня в тестах прямо из теста поднимается пул приложух для параллелизации. Например 8 инстансов. Каждый инстанс требует себе допустим БД, nginx, и еще че нибудь. Все это собирается в объект, все объекты кладутся в пул, и далее тесты параллелятся на этот пул. Я сомневаюсь что без классов ты этого добьешься. Ну, точнее наверное добьешься, но кода у тебя будет сильно больше

Shoo
11.07.2018
09:09:49
В тестировании (как, в прочем, и везде) нужно нащупывать баланс между DRY и KISS.
Упарываться по функциональному программированию или ООП только ради оных - глупо и бессмысленно.

Евгений
11.07.2018
09:11:07
поясни плиз почему но кода у тебя будет сильно больше?


Ilya
11.07.2018
09:18:25
поясни плиз почему но кода у тебя будет сильно больше?
Ну представь, у меня есть объект, который содержит в себе всю информацию, допустим pid процесса моего приложения. У моего объекта есть метод рестарта. Логично, что после рестарта pid изменится. В моем случае он автоматически обновит объект, прописав новый пид и следующий тест если придет, будет этот пид знать.
Теперь рассмотрим то же самое но без классов, на обычных методах. Тебе надо запустить приложение, куда то записать пид, поработать с ним. Потом чтобы порестарить тебе снова надо куда то сходить, взять пид, потом тебе его надо обновить. Потом пришел следующий тест и тоже должен куда то сходить, что то найти. В итоге там где у меня будет просто self.pid у тебя будет pid = get_pid()... И так в каждом случае, когда тебе надо что то хранить.
Или пример номер два. Чтобы обойтись функциональным программированием тебе в каждую функцию надо передавать контекст. На примере выше, чтобы рестартануть приложение, тебе надо в метод рестарта передать пид процесса. Если у тебя будет класс с приложением, у этого класса будет метод рестарта, а в атрибутах класса будет пид, то в метод рестарта передавать его уже не надо. Он его возьмет сам из объекта.
Короче, если у тебя простенькие клики в браузере, то да, обоходишься функциями и не паришься. У меня за раз стартует 100+ разных процессов, которыми я должен управлять в каждом потоке. Должна шарится память итд. Потому у меня по другому никак.

Google

Ilya
11.07.2018
09:19:35
И да, у меня нет классов с 2мя методами, один из которых инит)

Евгений
11.07.2018
09:19:52
я просто собираю общие функции для таких штук, куда на вход поступает один параметр - окружение, дальше само всё далается :)

Анатолий
11.07.2018
09:22:43
Всем привет, гайз, если график сделан на d3.js как можно выдернуть значения для протрактора? А то там ни id, ни всяких неймов и тд нет.

Евгений
11.07.2018
09:23:15
xpath?

Анатолий
11.07.2018
09:23:33
Неа

Ilya
11.07.2018
09:23:34

Евгений
11.07.2018
09:23:46
ну да :)

Ilya
11.07.2018
09:25:08
я щас посчитал, у меня 67к строк кода в моем проекте)
10к тестов

Sa
11.07.2018
09:26:25


Algis
11.07.2018
09:26:30
Ну представь, у меня есть объект, который содержит в себе всю информацию, допустим pid процесса моего приложения. У моего объекта есть метод рестарта. Логично, что после рестарта pid изменится. В моем случае он автоматически обновит объект, прописав новый пид и следующий тест если придет, будет этот пид знать.
Теперь рассмотрим то же самое но без классов, на обычных методах. Тебе надо запустить приложение, куда то записать пид, поработать с ним. Потом чтобы порестарить тебе снова надо куда то сходить, взять пид, потом тебе его надо обновить. Потом пришел следующий тест и тоже должен куда то сходить, что то найти. В итоге там где у меня будет просто self.pid у тебя будет pid = get_pid()... И так в каждом случае, когда тебе надо что то хранить.
Или пример номер два. Чтобы обойтись функциональным программированием тебе в каждую функцию надо передавать контекст. На примере выше, чтобы рестартануть приложение, тебе надо в метод рестарта передать пид процесса. Если у тебя будет класс с приложением, у этого класса будет метод рестарта, а в атрибутах класса будет пид, то в метод рестарта передавать его уже не надо. Он его возьмет сам из объекта.
Короче, если у тебя простенькие клики в браузере, то да, обоходишься функциями и не паришься. У меня за раз стартует 100+ разных процессов, которыми я должен управлять в каждом потоке. Должна шарится память итд. Потому у меня по другому никак.
именно в этом примере у тебя без объектов будет столько же кода :)


Shoo
11.07.2018
09:27:05

Ilya
11.07.2018
09:27:35

Анатолий
11.07.2018
09:30:14

Kseniya
11.07.2018
09:51:21
коллеги, кто-нибудь сталкивался с тем, что в headless chrome не скачиваются файлы и как это лечить?

Mikhail
11.07.2018
09:52:36
@RichardGears

Richard
11.07.2018
09:52:56
ВЖУХ!

Каte
11.07.2018
10:24:11

Anastasia
11.07.2018
11:51:57
Коллеги! Мне нужна ваша помощь. Кто работает на проектах, использующих ⭐️ big data и/или ⭐️ machine learning?
Можете написать в личку, есть пара вопросов по тестированию и жизненному циклу. Провожу исследование.
Если у кого есть знакомые, готовые уделить 10-30 минут, буду признательна за контакты!

Gordon
11.07.2018
14:34:27

Google

Gordon
11.07.2018
14:34:40
интересует?

Richard
11.07.2018
14:48:51
Народ, никто интеграцию с яндекс.деньгами не тестировал?
Есть у кого чеклист, может?...

Евгений
11.07.2018
14:53:44
чеклист не сохранился, но обрати внимания на ИЕ11 в вин7 там есть приколюхи всякие в виде несохранения кук по умолчанию

Richard
11.07.2018
14:54:13
Мило. Большой объём проверок был? Без учета кроссбраузерности.

Евгений
11.07.2018
14:54:53
не очень

Richard
11.07.2018
14:56:28
Если кто найдёт у себя - черканите в личку.

Eugene
11.07.2018
15:33:36
Господа, никто не в курсе, в чем здесь может быть проблема? Postman, JSONError: Unexpected token

Sergey
11.07.2018
15:37:21
а что в теле ответа?

Eugene
11.07.2018
15:37:43
все, спасибо, сервис просто лежал :):)

Sergey
11.07.2018
15:38:35
ну да, действительно, 503 вернул

Артемий Лобков
11.07.2018
16:26:54
Ребят, а аудиокниги по тестированию есть?

Subb98
11.07.2018
16:29:09
я видел только заклинания в стиле "баг, ИЗЫДИ!"

Alexander
11.07.2018
18:01:25