
Aleh
27.11.2016
22:24:21
так?

Serghei
27.11.2016
22:24:28
ну да

Aleh
27.11.2016
22:24:34
ну, какое отношение имеет к find?
has нужен если в вашем dsl он используется

Google

Serghei
27.11.2016
22:25:36
то как Серый его определил подталкивает к
if (find($spec)) ...
по крайней мере оно того не запрещает
для всего остально гоесть get с исключением
вот по этому я и предположил, что find часто используется так же как использовлся бы has

Aleh
27.11.2016
22:27:02

Sergey
27.11.2016
22:27:20
не ну не всегда
не, пожалуй нет

Serghei
27.11.2016
22:28:07
тогда пример был не очевидный, по крайней мере для меня :)

Sergey
27.11.2016
22:28:18
да я упоролся под вечер

Aleh
27.11.2016
22:28:33
у нас просто нет вроде "get"
ток фаинды

Sergey
27.11.2016
22:28:53
ну просто файнд по семантике может ничего не найти
а get обязан)

Aleh
27.11.2016
22:30:07
хм, а фаинды ли наши фаинды тогда ))

Google

Serghei
27.11.2016
22:30:21
:D

Ivan
28.11.2016
10:29:45
моки в интеграционных тестах - это ОК?

Aleh
28.11.2016
10:30:54
как и всегда, зависит от ситуации.
опиши)

Ivan
28.11.2016
10:33:56
тест взаимодействия двух компонент, третий мешает
нет, он не мешает, но я не хочу его логику тестировать

Aleh
28.11.2016
10:40:56
ну, вообще ситуация абсолютно нормальная

Ivan
28.11.2016
10:40:59
например, тестирование записи логгера в лог-файл, у логгера обязательный LogRecordProcessor, который добавляет в запись разную информацию, и путь к файлу
вот этот процессор замокать
и смотреть, чтобы записи попадали в файл

Andrew
28.11.2016
10:42:53
в таком случае тебе нужно будет написать интеграционный тест на этот процессор

Ivan
28.11.2016
10:43:11
зачем?
процессор юнитом покрывается
или всё-таки есть смысл?

Andrew
28.11.2016
10:44:36
если его забыть обьявить как сервис - интеграция будет неверная например
хотя юнит тесты проходят
как по мне, не стоит овчинка выделки - я понимаю замокать внешний апи, который ты не контролируешь или медленную компоненту

Ivan
28.11.2016
10:46:50
я не пишу логгер, я просто хотел пример привести

Sergey
28.11.2016
10:47:49
они потому и называются интеграционными

Google

Sergey
28.11.2016
10:48:18
и опять же проверять что там пишут процессоры не нужно, нужно проверять факт того что кто-то что-то пишет
а конкретику проверяют уже юнит тесты

Ivan
28.11.2016
10:55:59
так что, мокать можно?
:D

Sergey
28.11.2016
10:56:21
в интеграционных ты можешь юзать контейнер даже, и мокать как угодно

Ivan
28.11.2016
10:58:02
ну другой пример, у меня компонент пишет в SQL базу и в в AMQP-очередь, и я хочу не писать в реальную очередь, а вместо неё stub
тестировать хочу запись в sql-базу
о, кстати, в интеграционных тестах симфони, как правильно поступать: использовать service container с конфигурацией сервисов из config_test.yml или инстанцировать сервисы вручную, конфигурируя из глобальных переменных, например?

Sergey
28.11.2016
11:03:22
смотри что быстрее и удобнее тебе будет
иногда проще весь контейнер поднять
у меня интеграционные между компонентами так и не прижились
вопрос к демоноводам. как вы с мускулем боритесь, когда он обрывает коннекты?

Sergey
28.11.2016
11:14:58
к примеру есть консьюмер который получает сообщения не регулярно. скажем ночь может стоять в простое, а на утро ему мускуль режет коннект
щас сделан обычный враппер с реконнектом, но ворнинги задолбали)
может у кого есть более элегантное решение

Ivan
28.11.2016
11:15:56
приглуши ворнинги)

Sergey
28.11.2016
11:17:26
другие варианты?)

Ivan
28.11.2016
11:17:36
этот типа неэлегантный?
так а там кроме эксепшна ворнинг ещё?

Sergey
28.11.2016
11:18:38
PHP Warning: PDOStatement::execute(): MySQL server has gone away in /var/www/prod/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php on line 91

Google

Pavel
28.11.2016
11:27:52
https://github.com/facile-it/doctrine-mysql-come-back

Ivan
28.11.2016
11:31:10
и что, тут без ворнинга?

Sergey
28.11.2016
12:25:27
вдруг чет важное будет в ворнингах

Ivan
28.11.2016
12:26:10
именно при вызове метода враппера?
я имел в виду при вызове метода ворнинги ловить своим set_error_handler

Sergey
28.11.2016
12:32:41
ок, вопрос по-другому задам. есть какие-то другие варианты кроме как реконнект?

Ivan
28.11.2016
12:36:13
может, wait timeout увеличить?

Sergey
28.11.2016
12:42:35
на несколько суток?)

Ivan
28.11.2016
12:46:18
ну можно закрывать соединение после использования и открывать перед использованием

Admin
ERROR: S client not available

Ivan
28.11.2016
12:47:06
открывает автоматически

Sergey
28.11.2016
12:47:11
если например заходит миллион сообщений, а потом простой пару дней - то не очень эффективно
думал в самом консьюмере сделать хук, чтобы он сам их переоткрывал каждый час простоя скажем

Ivan
28.11.2016
12:48:35
запоминать время последнего использования, и переоткрывать если уже давно не использовался

Sergey
28.11.2016
12:48:56
?

Sergey
28.11.2016
12:59:35
задача для лентяев
есть проект без тестов
надо что бы тесты там были

Sergey
28.11.2016
12:59:51
написать тесты)

Google

Sergey
28.11.2016
12:59:54
есть фикстуры которые покрывают прекондишены тест кейсов для смоука
есть люди владеющие мануальным тестированием
тесты надо написать только на API
причем просто проверять структуры данных а не сами данные
есть php-vcr
....дальше пока не придумал но я ленивый и не хочу писать тесты на это говно
у меня есть неделя-полторы
есть apiary который немного не актуален
как быть лентяем?

Sergey
28.11.2016
13:02:01
не писать тесты?)

Sergey
28.11.2016
13:02:18
это не тот вид лени
мне надо написать тесты с минимальными трудозатратами
исходя из того что есть (а есть немало чего)
необходим просто автоматизированный смоук API
все остальное постепенно будет рефакториться и покрываться интеграционными тестами

Aleh
28.11.2016
13:21:36
неделя-полторы на что именно?
за полторы недели можно знатный кусок покрыть)

Sergey
28.11.2016
14:36:43
кто-то юзает функции в неймспейсах вместо статических в классах?
я вот до сих пор не юзаю и не могу придумать хоть одну причину почему так не стоит делать)
как пример есть Guzzle который этим не брезгует и нормально работает
точнее причины были - хреново работал пхпшторм, но уже давно все исправили

Aleh
28.11.2016
14:47:03
reactphp promise
resolve