@prophp7

Страница 90 из 1387
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
``` interface UserRepository { public function get(int $user): User; public function find(int $user): ?User; }
а get и find отличаются только эксепшеном? О.о

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

Страница 90 из 1387