Zloy_Программист
Всем привет.
Zloy_Программист
Новичок в симфони, подскажите как после правки страницы сбросить кеш, чтобы применить изменения?
Zloy_Программист
чет стандартный набор команд не работает
Sergey
Bin/console cache:clear
Sergey
Почисти папки var/cache
Zloy_Программист
чистил, не помогло
Zloy_Программист
удалил все из папки
Zloy_Программист
структура такая var/www/site/pages/catalog в нем страницы vue
Zloy_Программист
там изменения
Sergey
Npm или yarn стоит? Вьюхи компилил заново?
Zloy_Программист
yarn стоит
Сергей
редактируешь страницы на vue, а кеш симфони сбрасываешь? чтото здесь не так
Sergey
Yarn build попробуй
Zloy_Программист
написал же
Sergey
я не работал раньше с симфони
Симфони и вью это не связанные вещи
Zloy_Программист
ахахаха
Zloy_Программист
после ребута сайт вообще не поднялся )
Zloy_Программист
красота
Миша
Мирного утра всем. Как думаете, должно ли приложение "сотрудничать и прогибаться" под тесты? Вот пример: в продашн коде есть константа, ничто не просит её быть публичной кроме теста. Было бы удобно в тесте брать её прямо из класса. Как лучше поступать? Оставлять приватной а в тесте юзать через рефлексию? Но это грабли при рефакторинге (такие константы не отыщет поиск зависимостей IDE). Сделать публичной? - Так это получается меняю логику приложения ради теста... Я вообще нигде не натыкался на то что логику приложений ради теста менять нельзя, но кажется что так должно быть. Кто что думает, кто как бы поступил?
Миша
Ну блин) Если ты не сделаешь её публичной фиг ты её в тесте получишь без рефлексии
Миша
Да например для формирования заголовка окна.
Dmitry
Миша
Длинно будет. Не могу.
Dmitry
Длинно будет. Не могу.
Тогда, видимо, что-то не так написано, что приватная константа понадобилась снаружи или в тесте
Dmitry
Без примера гадать сложно
Миша
А разве для того чтобы константа была приватной нужен повод? Я просто по дефолту пишу всё приватным что явно мне не нужно снаружи класса. Здесь собственно и конфликт конфликт - она вроде бы нужна мне снаружи класса, но нужна в тесте. Считать ли тесты достаточно уважительно причиной для распривачиванияе или не считать...
Dmitry
А разве для того чтобы константа была приватной нужен повод? Я просто по дефолту пишу всё приватным что явно мне не нужно снаружи класса. Здесь собственно и конфликт конфликт - она вроде бы нужна мне снаружи класса, но нужна в тесте. Считать ли тесты достаточно уважительно причиной для распривачиванияе или не считать...
Не считать. Тест тестирует внешнее поведение объекта также, как этот объект будет использовать реальный код. Так что весьма странно, что ему вдруг понадобилось что-то внутреннее. Здесь либо класс кривой, либо тест.
Миша
Юра
Тебе просто надо предписать весь код в функциональном стиле без сайд эфектов
Юра
Тогда юнит тесты круто работают
Павел
Не считать. Тест тестирует внешнее поведение объекта также, как этот объект будет использовать реальный код. Так что весьма странно, что ему вдруг понадобилось что-то внутреннее. Здесь либо класс кривой, либо тест.
Пример: баланс, может пополняться, может тратиться, оба с логикой. геттера нет - не нужен. Как протестировать корректное пополнение? Через снятие? И какой метод в итоге будет протестирован?
Юра
Геттер не нужен это как? Если нет геттера, то ничто не может прочитать баланс, а значит он ни на что не влияет. Ну в теории
Юра
Тестируй значит публичный интерфейс который зависит от баланса )
Null
Есть способ некостыльный включить в дефолтную сериализацию метод? Без групп.
Null
Акцессор это. Пропа есть, которую в чистом виде получать никогда не надо. Ее мечу игнором. А вот акцессор должен вместо пропы сериалайзнуться.
Null
О, погуглю
The Ant
Для юза баланса будет пара сервисов. АддФандс и Пэй какой, вот их и тестить.
Павел
А зачем тестировать цифру?
Что значит зачем? Чтобы протестить результат операции. Я имею виду когда баланс не просто сеттер, а именно логику содержит как он может пополняться и с какими условиям и как тратиться. Например твои сервисы но в одном инкапсулированы.
Павел
Геттер не нужен это как? Если нет геттера, то ничто не может прочитать баланс, а значит он ни на что не влияет. Ну в теории
Так что он логику пополнения и траты в себе заключает. Баланс.пополнить, баланс.потратить образно
Nikolay
Баланс это просто цифра. И есть операции над этой цифрой. Вот операции и тестировать. Цифру то зачем?
Тут тестируется по принципу черного ящика, то есть проверяется что баланс корректно изменился
The Ant
Цифра не может в себе заключать что-либо, кроме значения
Павел
Баланс это просто цифра. И есть операции над этой цифрой. Вот операции и тестировать. Цифру то зачем?
Две операции: пополнить и потратить. Как их тестировать без результата в виде цифры?
Павел
Звучит как biliberda 2.0
Нет, это инкапсуляция банальная
Павел
Тогда баланс это сервис. В чем м проблема тестировать сервис? )
Какая разница как ты это назовёшь сервис или нет?
Юра
Нет, это инкапсуляция банальная
Я же написал, тестируй тогда то что зависит от баланса
Павел
Есть класс, есть методы, есть состояние
Павел
Чтобы это был юнит
Павел
И я тестил 1 метод
Юра
Ну сервис какой-то. Если нет публичного интерфейса которвй зависит от баланса, или по другому если нет видимого сайд эффекта от изменения баланса, то зачем его тестировать тогда
The Ant
Какая разница как ты это назовёшь сервис или нет?
Разница в контексте этого баланса. В одном случае цифра, и ее нет смысла тестировать. В другом это полноценный сервис с бл. Тогда появляется Возможность тестировать. Именно действия.
Юра
Ты увидишь что какой-то метод сломан, значит что-то там не то и пойдешь разбираться
Павел
Ты увидишь что какой-то метод сломан, значит что-то там не то и пойдешь разбираться
Я согласен что есть такой вариант, но тест проверяет не метод а целый кейс и тест сложнее и не даёт однозначности что сломано
The Ant
Причем тут цифра , если тестируются бизнес операции
При том что изначально в вопросе не было понятно что такое баланс
The Ant
А потом из обсуждения стало понятно.
The Ant
И вот ответ как тестировать ваш сервис баланса без информации о самом балансе... Ебучая тафталогия. Там где есть правда об этой цифре. Если в бд, то тестить в бд, если в приватной переменной, то через рефлексию.
Null
Virtual property не подойдёт?
Так виртуалки-то есть у JMS сериалайзера.
Null
У него проще. У него я бы просто сделал ignore-all и разметил дефолты
Павел
И вот ответ как тестировать ваш сервис баланса без информации о самом балансе... Ебучая тафталогия. Там где есть правда об этой цифре. Если в бд, то тестить в бд, если в приватной переменной, то через рефлексию.
Ну вот обсуждение основное - как делать это без рефлексии, если нет геттера . Типа есть вариант тестить публичные контракты - но тогда тест выходит затрагивает два метода, что уже не совсем юнит метода. Или рефлексия - но мы проламываем инкапсуляция и делаем тест хрупким.
Павел
У него проще. У него я бы просто сделал ignore-all и разметил дефолты
А просто добавитьметод геттер не помогает? Вроде сериалайзер их дёргает
Null
Попробую. Не думал об этом, если честно. Я думал он только проперти дергает.
Null
Знаю, что геттеры дергаются если их прям группами разметить.
The Ant
Публичная*