@prophp7

Страница 374 из 1387
Herman
22.05.2017
12:19:30


енот
22.05.2017
12:48:13
а можно как-то неопределенной константы имя выводить вместо самой ошибки?

Google
Sergey
22.05.2017
13:57:42
а еще можно локально в контейнере баловаться

Роман
22.05.2017
13:57:56
так себе повод
Зато железный :) Из-за этого на всяких шаредах Apache до сих пор незаменим. И поэтому до сих пор только, ИМХО, в таких количествах и стоит.

Роман
22.05.2017
14:12:59
Aleksandr
22.05.2017
14:13:35
вот что нашел, кстати
это стандарт де-факто

Herman
22.05.2017
14:14:05
ну вот я думаю hhvm подключить

Aleksandr
22.05.2017
14:14:14
Herman
22.05.2017
14:14:18
а там ведь тоже fastCGI

не стоит
почему?

Google
Herman
22.05.2017
14:14:59
скорость выше, а с совместимостью каких-то проблем нет.

Aleksandr
22.05.2017
14:15:04
почему?
смысла нет. быстродействие на уровне пхп7, а кое-где и хуже. совместимость страдает

Herman
22.05.2017
14:16:14
тесты говорят об обратном. да ладно, пока буду модный hhvm использовать, а потом, как разберусь, переключусь обратно, если что. я смотрел с yii2 и laravel - 100% совместимость

Aleh
22.05.2017
14:17:23
читал, что доктрину не смогли запустить, происходили всякие странные вещи типа флуш прошел, а в базе ничего не появилось

Pavel
22.05.2017
14:19:55
В симфони 4 вообще дропнули поддержку hhvm https://twitter.com/fabpot/status/865263025670033410 А по бенчмаркам там максимум 10-20% разницы.

Aleksandr
22.05.2017
14:20:01
тесты говорят об обратном. да ладно, пока буду модный hhvm использовать, а потом, как разберусь, переключусь обратно, если что. я смотрел с yii2 и laravel - 100% совместимость
тесты такие тесты. https://www.phoronix.com/scan.php?page=news_item&px=PTS-PHP-7.1-Benchmarks призрачные профиты не соят того, чтобы уходить куда-то с мейнстрима. модным hhvm был 5 лет назад. На данный момент это легаси. Поддержку hhvm начинают убирать из известных опенсурс продуктов

Herman
22.05.2017
14:24:11
ладно. походу, переубедил

Artem
22.05.2017
14:33:24
Подскажите по mockery, не могу понять где я неправ. Хочу чтобы в ответ на вызов foo() у объекта проставлялось публичное свойство prop. Делаю по документации http://docs.mockery.io/en/latest/reference/expectations.html#expectations-setting-public-properties $mock = Mockery::mock('overload:' . Test::class); $mock->shouldReceive('foo')->set('prop', 'hello'); $o = new Test; $o->foo(); var_dump($o->prop); но на выходе получаю Undefined property: Test::$prop на строку с var_dump()

Sergey
22.05.2017
14:43:54
какая-то дичь если честно

Artem
22.05.2017
14:51:21
поясню для чего это нужно: laravel (eloquent), код вида $model = new Model; $model->setForeignId(123); makeSmth($model->foreign); Где foreign - это связь с другой моделью по foireignId

если скажете, как тут подменить $model->foreign, то я буду очень рад

Sergey
22.05.2017
14:57:00
а зачем его подменять?

это ж данные

вообще не очень хорошая идея покрывать юнит тестами что-то завязанное на AR

Artem
22.05.2017
14:57:50
эмн, логика завязана на AR очевидным образом. Как иначе тестировать логику?

Sergey
22.05.2017
14:58:05
подсовываешь стабы

вместо инстансов AR

Artem
22.05.2017
14:58:53
ну вот я пример привёл. В этом месте создаётся новый объект AR через new. Так принято в eloquent

потом этот объект заполняется и вставляется в БД

Sergey
22.05.2017
14:59:19
IoC

Google
Sergey
22.05.2017
14:59:24
ну то есть

Artem
22.05.2017
14:59:25
ну или делается return, не принципиально

Sergey
22.05.2017
14:59:34
ГДЕ у тебя создается инстанс?

какой-то класс менеджер?

или объектная модель?

$model = new MyObjectModel($myArModel);

и тогда тебе никто не мешает подменять $myArModel на какой-то стаб

но мокать такое дело - это как мокать приватные проверти у объекта который ты тестишь

сложно, можно, не имеет практического смысла

проще поднять интеграционные тесты на какой in-memory базе

и гонять в 10 потоков

что бы по скорости было не очень больно

Artem
22.05.2017
15:01:18
вот этого я и не хочу. Зачем мне базу подниматиь для тестов. Это дно какое-то

Sergey
22.05.2017
15:01:41
ну так зачем ты eloquent тогда юзаешь, где сама идея заключается в том что бы смешать инфарструктур и логику

сам принял такое решение

сам и кушай минусы подхода

Artem
22.05.2017
15:01:57
это не мой выбор. Но моя боль

Sergey
22.05.2017
15:02:18
ну тогда - думай в сторону того как убрать всю бизнес логику из AR модели и завернуть ее в объектную модель (не сервисы)

Artem
22.05.2017
15:02:18
мне сама идея AR не нравится в корне, но пока с этим ничего не поделать

Sergey
22.05.2017
15:02:30
row data gateway - можешь погуглить

Google
Artem
22.05.2017
15:02:47
и весь код переписать, да

вопрос в обзем-то по mockery

Sergey
22.05.2017
15:02:55
ну смотри

давай так

Evgeniy
22.05.2017
15:03:02
ну альтернативный вариант страдать дальше

Sergey
22.05.2017
15:03:03
что ты так протестишь?

Evgeniy
22.05.2017
15:03:08
с этими проблемами

Sergey
22.05.2017
15:03:22
вопрос в обзем-то по mockery
вот замокаешь ты... что будет если ты чуть чуть поменяешь код?

тесты упадут или останутся работать?

Admin
ERROR: S client not available

Sergey
22.05.2017
15:03:40
что ты хочешь зафиксировать тестами?

Evgeniy
22.05.2017
15:03:47
ну любой тест это как раз сигнал что там код изменился

другое дело ты завязываешься на внутренности а это беда

Artem
22.05.2017
15:04:13
а где я на внутренности завязываюсь? Я завязываюсь на данные

Evgeniy
22.05.2017
15:04:27
ar внутри себя работает с бд

и не разделить данные и соединеине с бд

таково наследование

и тебе это поддерживать

это одна из основных проблем ar

что писать тесты становится больно

Google
Artem
22.05.2017
15:05:20
ох, да что вы мне говорите про то, что AR - говно. Я и так прекрасно знаю это

Evgeniy
22.05.2017
15:05:28
тебе предложили уже юзать ar как row date gateway

а модели уже юзали бы его

тогда ты бы мог мокать объекты

Sergey
22.05.2017
15:05:47
а где я на внутренности завязываюсь? Я завязываюсь на данные
ты завязываешься на поведение зависимостей тестируемого объекта

нарушаешь LoD

Artem
22.05.2017
15:05:52
весь код уже написан

Sergey
22.05.2017
15:05:58
если код УЖЕ написан

то тогда вообще нет смысла писать юнит тесты

Artem
22.05.2017
15:06:05
нельзя взять и всё переписать

Sergey
22.05.2017
15:06:06
пиши интеграционные

Artem
22.05.2017
15:06:18
смысл есть всегда. Новая логика же дописывается

Evgeniy
22.05.2017
15:06:26
лол

Sergey
22.05.2017
15:06:37
юнит тесты на говнокод = боль поддерживать эти тесты

пишем интеграционные тесты, чутка рефакторим что бы можно было писать юниты, пишем юнитов много-много

таков алгоритм работы с легаси

и это больно и долго

Artem
22.05.2017
15:12:25
это больно и долго, но не настолько, чтобы это было невозможно сделать. Мокаются только данные (через дебри методов eloquent), и далее работа алгоритма уже проверяется на этих данных. Mockery тут сильно помогает тем, что как раз new позволяет отловить через полную подмену класса

unknown
22.05.2017
15:14:22
Всем привет, у кого есть готовый скрипт по Mlm

Artem
22.05.2017
15:14:31
проблема тут в том, что входные данные размазаны между непосредственно аргументами тестируемого алгоритма и тем, что лежит в БД. Аналогично и результат работы размазан. Собирать всё это удовольствие то ещё, но это возможно

Evgeniy
22.05.2017
15:15:14
ну удачи

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