
Olga
23.06.2017
07:14:49

Vladislav
23.06.2017
07:17:00
расскажи
или ты все-таки депенденси инжекшн

Olga
23.06.2017
07:20:57
расскажи
да, через Dependency Injection Container.
у меня этот сервис зарегистрирован как компонент в общем конфиге main.php (поэтому в любом случае, при реальном запуске и тестах, он всегда используется).
я сейчас зарегистрирует реальный сервис в реальный конфиг (main-local.php), а мок подключу через тестовый конфиг (test-local.php)

Google

Vladislav
23.06.2017
07:23:45
?

M
23.06.2017
07:24:13
А я в тесты не умею и мне стыдно от этого сейчас(((

Vladislav
23.06.2017
07:26:50
ничего сложного же

M
23.06.2017
08:07:49
Как и с вёрсткой, ага. Только с BS3 могу что-то наковырять)))
https://explain.depesz.com/s/Ayu
ЖИЗНЬ БОЛЬ
Запрос-то написал, но вот он ппц тормоз

Павел
23.06.2017
08:11:55
Пропускай через профайлер ищи узкие места

M
23.06.2017
08:12:15
Так ссылку глянь, это итак профайлер)

Павел
23.06.2017
08:20:13
Уел ?

M
23.06.2017
09:35:21
ЧООООРТ
Сидел над SQL пыхтел) Нашел узкое место)

Иван
23.06.2017
09:52:12

Google

M
23.06.2017
10:04:16
По тому что content neognation так сработало.

Иван
23.06.2017
10:05:17

M
23.06.2017
10:05:49

Иван
23.06.2017
10:17:11

Roman
23.06.2017
10:18:59

Иван
23.06.2017
10:22:19

Alexander
23.06.2017
10:44:12
http://rmcreative.ru/blog/post/yiiconf-2017--slaydy--foto-i-podkast

Павел
23.06.2017
10:49:00
Вот респект и уважуха!

M
23.06.2017
10:54:36
Оптимизировал запрос, +1 поинт в знанеие SQL

Павел
23.06.2017
11:08:02
Давай профайлер в студию

M
23.06.2017
11:20:27
Проект в проде, данные набираются. ХЗ как в будущем поведет себя запрос.

Alexander
23.06.2017
11:31:59
http://yiiframework.ru/news/166/auth-client-213-http-client-204-mongodb-214


M
23.06.2017
13:50:43
Коллеги, мне нужна ваша помощь.
У меня есть проект который с железяками работает(да, на РНР, да сам в шоке почему другой ЯП не выбрал :) ), так вот он не покрыт тестами.
Заказчик отправил доработки, но на прод что-то выкатывать не покрыв тестами не хочу, да и понятно, чем это закончится вероятно...
Так вот проблема в том, что некоторые операции выполняются через консольные методы по крону, на которых завязано много логики.
НО! Всё общее состояние системы хранится в БД, чтобы даже после рестарта сервера продолжить адекватно работать.
ВОПРОС НА МУЛЬЁН
Как это дерьмо покрыть тестами, конкретно сейчас надо API покрыть.
Проблемы.... Ну у меня PHP крутится в докере, там же и крон дёргается. Надо как-то тестовое окружение что ли подготовить, где не будет крона, чтобы я смог сэмулировать некоторое состояние системы, а "демоны" не обломали меня.
МБ сделать в консольных командах проверки на ENV_TEST.
ХЗ чёт, СЛОЖНААА

Roman
23.06.2017
13:52:44
хох ? успехов тебе, приятель ?

Alexander
23.06.2017
13:56:04
отрефакторить слой для работы с API
чтобы пофиг было, откуда его запускать
и его уже тестить

M
23.06.2017
13:57:52
отрефакторить слой для работы с API
Там эти консольные команды состояние некоторых сущностей меняют, с которыми АПИ работает.
Апи приложение и фронтенд у меня взаимодействуют с сервисом.
Вероятно, надо все 3 части эти тестировать.

Google

Dmitriy
23.06.2017
14:00:11
для начало api и разделять это все на слои. Судя по тексту там все в коммандах

M
23.06.2017
14:00:36
Нет, не всё, команды с сервисом опять же взаимодействуют
Команды эти от железок информацию собирают и если выполняются какие-либо условия, то просят сервис сделать что-то
Итак, я нубас в тестах, поэтому буду вслух произносить, что делаю)) Для начала, логично, нужно настроить окружение тестовое.
Как по уму "состояние" воспроизвести, фикстуры?
Вся БД лежит в миграциях, так что поднять структуру на тестовой бд - изи.

Dmitriy
23.06.2017
14:04:43

M
23.06.2017
14:06:12
Ну вдруг есть в край дурные методы_))
А где писать, yii migrate up?
я вот создал контейнер db-test, описал db компонент в common/config/test.php
Ау, есть кто?

Dmitriy
23.06.2017
14:28:14

M
23.06.2017
14:29:06

Dmitriy
23.06.2017
14:29:37
Api свое ?

M
23.06.2017
14:33:15

Dmitriy
23.06.2017
14:35:35
Есть Yii::$app->runAction
для запуска миграций . если нужно
у нас все CI делает, но тестирование сложней и не на yii2

M
23.06.2017
14:36:22
Я миграции в php контейнере накатил вызвав ./yii_test migrate
Блин, тестирование слабо задокументированно чет.
Какой тип теста методы апи дёргает и смотрит состояние моделей, функциональный?

Google

Admin
ERROR: S client not available

M
23.06.2017
14:52:29
Стыдно(
Блин и как на зло все cms/cmf еле покрыты тестами, ппц

Sergey
23.06.2017
15:24:22
есть пользователи codeception 2.3 на php5?
у вас функциональные тесты на yii1 нормально работают?

Maxim
23.06.2017
15:45:15
присоединюсь к вопросу о тестах.
есть unit тесты, которые тестят кусочки по отдельности.
а теперь мне надо весь бизнес-процесс протестировать
например прием заказа, отправка нотификации, создание поставки, её отсылка, выставление счета.
куда копать? спасибо заранее :)
приложение НЕ web, т.е. взаимодействие с ним без браузера вообще.

Sergey
23.06.2017
15:46:45
функциональные тесты

Maxim
23.06.2017
15:50:39
а примерчик есть где-нибудь какой-нибудь? с чего начать то? :_

Sergey
23.06.2017
15:51:50
http://codeception.com/docs/04-FunctionalTests

Maxim
23.06.2017
15:57:53
`<?php
$I = new FunctionalTester($scenario);`
ругается
Notice: Undefined variable: scenario in, что я забыл и где?

Юрий
23.06.2017
15:58:53
Переменную указать, разумеется

Maxim
23.06.2017
15:59:11
ну а что это за сценарий то? кто его указывает и где?
я сам называю?
киньте плиз простейшим примером функционального теста в codeception

Dmitriy
23.06.2017
16:09:02
https://github.com/yiisoft/yii2-app-basic/blob/master/tests/functional/ContactFormCest.php

Evgeny
23.06.2017
16:15:47
Народ, всем доброго пятничного вечера

Boris
23.06.2017
16:16:43
aloha

Evgeny
23.06.2017
16:18:09
если кто дружит с js/jq подскажите в какую сторону копать - вопрос про ajax.
К примеру посылаю 3 запроса ajax/pjax.
При каждом запросе показываю лаодер вместо кнопки (чтоб народ видел что че то происходит)
Сервак че то там начинает отвечать. Как по ответам понять к какому именно запросу этот ответ? что бы выключить лаодер именно для кнопки в которую пришел ответ.
нужно найти где нить идентификатор запроса, а потом его увидеть в ответе

Google

Evgeny
23.06.2017
16:20:04
костыль стайл - в заголовке запроса передавать этот идентификатор, а потом чтоб контроллер его выкидывал обратно при ответе

Sergey
23.06.2017
16:22:11
сохраняй кнопку на которую нажали и убирай анимацию только у неё

Evgeny
23.06.2017
16:24:42
есть некий глобальный листенер
который собирает все все все кнопки, автоматические скрипты и прочие штуки
и далеко не сразу во всех существующих кнопках появится вызов коллбека

Dmitry
23.06.2017
16:50:55

Sergey
23.06.2017
17:57:13

Evgeny
23.06.2017
17:57:42
1 форма - 1 запрос, другая - другой