
Ilya
07.11.2016
21:24:52
эх

Aleh
07.11.2016
21:34:09
))

Sergey
07.11.2016
21:38:50
пропаганда гомосексуализма?)
неужто узнали что Кук того

Google

Sergey
07.11.2016
21:40:20
ну да не суть...
@mkusher вчера пол дня писал статью про тесты и думаю ее удалить
бесполезно это все

Dmitriy
07.11.2016
21:41:10
нет. давайте сюда черновик. почитаем

Sergey
07.11.2016
21:41:13
либо на выходе получится книга либо статья ниочем
надо как-то больше фокусироваться на конкретных вопросах
и я не могу придумать что сначала описывать

Aleh
07.11.2016
21:41:43
https://twitter.com/chicoxyzzy/status/795742081784352768

Sergey
07.11.2016
21:42:24
@mkusher ну офигеть теперь)

Aleh
07.11.2016
21:42:26

Sergey
07.11.2016
21:42:44
так эта хрень у меня на gist уже сколько висит
про кнопку
ну то есть статья "зачем нужны тесты"?)

Google

Sergey
07.11.2016
21:43:09
тут просто... такое дело
план пока такой был:
- Про то, что все говорят о тестах но мало кто их пишет
- Зачем нужны тесты или рефакторинг и цикл обратной связи
- "Тесты это дорого"
- Внимание, черный ящик
- Не надо мокать все подряд
- Пирамида тестирования
сейчас вот подумал - могу выкинуть из этого всего детали вроде "модульные/интеграционные тесты" и т.д.
и написать в общем
как тебе план?

Aleh
07.11.2016
21:47:21
не совсем понимаю первый пункт

Sergey
07.11.2016
21:47:35
это введение... ты его на gist у меня когда-то читал

Dmitriy
07.11.2016
21:47:41

Sergey
07.11.2016
21:48:13
охохо, нашел еще один драфт такой же статьи написанной пол года назад)
надо бы почитать
> разделить статьи можно. Каждая статья про отдельные тесты
перед этим должна быть общая статья, которая должны как бы показывать что "все связано". Да и принципы в целом общие
я вот все же думаю что основной целью статьи будет борьба с "тесты это дорого"
у меня к примеру даже без тестов надо для QA фикстуры писать, и это где-то по моим прикидкам 60%-70% времени от тестов
если бы кто со мной статистикой поделился... сколько времени на тесты уходит по сравнению с реализацией и все такое

Aleh
07.11.2016
21:50:12
а как ваши qa с фикстурами работают?

Sergey
07.11.2016
21:50:24
@mkusher при деплое фикстуры накатываются
так и работают
мы перед тем как таск в работу брать прописываем в описании к таску "как проверить" и для этого готовим фикстуры

Aleh
07.11.2016
21:50:49
типа в каждой ветке где-то в спец месте указывается, какой пакет фикстур накатывать?

Sergey
07.11.2016
21:50:57
все намного хуже

Google

Sergey
07.11.2016
21:51:08
пока что у меня есть один огромный пакет фикстур)
но уже потихоньку приходим к тому что это слишком уж сложно

Aleh
07.11.2016
21:51:31
а, ну просто если они конфликтовать будут

Sergey
07.11.2016
21:51:34
но зато так экономит время на дэмо клиенту
> а, ну просто если они конфликтовать будут
такое может быть, в этом случае не проблема добавить в джобу для деплоя параметр какой набор фикстур юзать

Aleh
07.11.2016
21:52:05
у нас qa старательный, сам себе данные создает, а между деплоями на стейжинг/демо база не чистится
заодно и миграции тестятся

Sergey
07.11.2016
21:52:36
> а между деплоями на стейжинг/демо база не чистится
ну ты ж вкурсе что у меня проектов побольше будет... и "не чистится " только через месяц-два

Aleh
07.11.2016
21:52:53
да понятное дело)

Sergey
07.11.2016
21:58:22
https://gist.github.com/fesor/53df2d69b6d44c1b26cf
ну вот введение о котором я говорил
добавил еще две главы

Sergey
07.11.2016
23:12:37
добавил еще главу...
остальное на днях допишу
там чистить текст надо долго

Dmitriy
07.11.2016
23:16:27
спс. Интересно пишите.

Julia
08.11.2016
00:00:33
Привет всем, может кто поможет с Laravel.
Есть некий class ShowMethodsRequest extends FormRequest
Который должен валидировать запрос от пользователя, но, как мне вывести ошибки в шаблоне, которые получились при валидации?
P.S.: у меня нету метода store в контроллере
Как должен в оригинале происходить процесс валидации? Куда сообщения передаются после этого...

Sergey
08.11.2016
00:03:35
https://laravel.com/docs/5.3/validation#working-with-error-messages

Google

Sergey
08.11.2016
00:03:43
в любой непонятной ситуации - читай доку
в частности тебе надо смотреть в сторону Named Error Bags
например

Aleh
08.11.2016
05:59:26
@fes0r норм ты настрочил за ночь)

Алексей
08.11.2016
07:10:12
Aleh?
Существенное увеличение max_input_vars как-то влияет на безопасность? или что-то еще

Roman
08.11.2016
07:45:21
if($errors->any())
foreach($errors->all() as $error)
{{ $error }}
endforeach
endif

Алексей
08.11.2016
07:54:26
Но оно ведь вприницпе доступно для админа

Admin
ERROR: S client not available

Roman
08.11.2016
07:57:46
Если в чем-то сомневаешься, что оно несет ущерб для безопасности, просто пробуешь для начала гуглить "<название фичи> exploits", и смотришь, насколько много есть лазеек

Sergey
08.11.2016
08:00:50
@fes0r
>А говорить мы будем о том, как сделать тесты более живучими. Как сделать так, что бы они не падали на каждый чих. Как сократить издержки на их поддержку.

Sergey
08.11.2016
08:32:46

Sergey
08.11.2016
08:34:56
http://php-and-symfony.matthiasnoback.nl/2015/07/refactoring-the-cat-api-client-part-1/ людям лучше доходит больше такой подход к обьяснению
больше примеров, больше кода, меньше воды о которой и так все знают)

Sergey
08.11.2016
08:40:50
много воды?
там код дальше будет
при разговорах о черных ящиках

Julia
08.11.2016
08:49:41

Google

Roman
08.11.2016
08:53:18
Где, и как ты вызываешь FormRequest?

Anton
08.11.2016
08:56:45
@fes0r приведи адекватный пример проперти-бэйсед тестирования) ну и использование элисбандла в качестве генерации фикстур

Aleh
08.11.2016
09:07:51
В пхп это как-то не юзается особо
Ну, не знаю случаев, когда надо верифицировать пхп апп

Roman
08.11.2016
09:11:46
@ekifox Я понял кажется. Ты вызываешь сохранение в том же методе, где и валидацию?

Julia
08.11.2016
09:14:03
Когда кидает назад, $errors пустой
Скорее всего я делаю все не правильно
вот контроллер
вот FormRequest
function response добавил для теста


Sergey
08.11.2016
09:19:58
кстати о тестировании. вопрос адептам функциональщины и черного ящика, как бы вы тестировали кейсы:
- веб сервис с пулингом, по типу skyscanner, когда ты запрашиваешь поиск, тебе дают токен и ты с этим токеном ходишь постоянно на урл пока тебе не отдадут все данные по запчастям. весь процесс выгрузки полных данных может занимать несколько минут, а данными сервис полностью не владеет и ему их нужно запрашивать у других провайдеров
- веб сервис, с зависимостью от другого сервиса, который возвращает свои данные + данные соседа и зависит от этих данных
- демон, который делает форк себя и управляет субпроцессами
- демон консьюмер, висит на сокете и кушает очередь
- излюбленные сценарии типа "я нажал на кнопку и вижу" если у тебя SPA приложение, которое активно юзает запросы к серверу


Roman
08.11.2016
09:27:38
Правильно. У тебя эта же страница попадает в бесконечный цикл, потому что FormRequest по умолчанию редиректит на страницу, с которой пришел.
Пути решения что вижу я:
- Сделать так, как тебе навязывает ларавель. Разделить логику отображения твоей формы, и сохранения её, в разные методы. Вынеси $paymentModel->createNew(...) в отдельный метод, вроде storePayment, и принимай там реквест.
- Не юзать форм реквест, а просто создавать в твоем методе showMethods валидатор вручную, и передавать во вьюху возвращенные валидатором ошибки.

Julia
08.11.2016
09:29:08
вариант 2 интереснее :D
пробовал, тогда валидатор надо запихнуть в showMethods, будет ли это красиво?

Roman
08.11.2016
09:29:13
Либо можешь заняться извращениями, и создавать вручную обьект форм реквеста, и засетить ему потом через setRedirector куда надо

Julia
08.11.2016
09:34:42
Не знаю как поступить в таком случае, у меня там нет никаких форм, пользователя перекидывает с другого сайта ко мне
этакий аналог платежного хаба