Size: a a a

2021 March 11

AT

Anton Titov in PHP
Валентин Удальцов
это не в принципе вариант, а то, как это надо делать)

резюмируя, есть только два нормальных типа инъекций — "фиксированные" (грубо говоря контейнер-компайл-тайм) через конструктор и "нефиксированные" (передаваемые в рантайме) через параметр выполняемого метода. тогда все сервисы можно делать иммутабельными, а весь контекст (представленный мутабельным стейтом и/или иммутабельными сервисами, выбираемыми для конкретной ситуации) живёт только в переменной и передается только через параметры, потом по окончании всех действий автоматически утилизируется.

Тогда и в роадраннере запускать проект можно смело, и корутинами баловаться, не боясь, что, например, в рамках одного процесса сначала в пошеренном нормалайзере один сериалайзер в свойстве через setNormalizer задан, а потом вдруг другой (в случае, если на проекте несколько сериалайзеров сконфигурировано под разные задачи, но при этом они шерят одни и те же SerializerAware нормалайзеры).
наш фрейм так работает, скопы видимости зависимостей)
источник

ИЛ

Иван Лещёв in PHP
вот третьего дня парень спрашивал, как ему в тесте проверить приватное поле
я говорю, делай геттер
так геттер же не используется, зато поле доступно через рид сервис
источник

ИЛ

Иван Лещёв in PHP
но если поле доступно через рид сервис, то и в оригинальном объекте оно должно быть доступно на чтение, я так думаю
источник

ИЛ

Иван Лещёв in PHP
сомнительное сокрытие, короче
источник

MM

Maksim Masiukevich in PHP
Если парень в тесте проверяет приватнон поле, то парень осел
источник

MM

Maksim Masiukevich in PHP
Сам таким был когда-то ;)

Нет никакого смысла проверять приваты
источник

МФ

Максим Федоров... in PHP
Maksim Masiukevich
Сам таким был когда-то ;)

Нет никакого смысла проверять приваты
если взять бизнес-сущность, то как тестить изменение инварианта? Городить срезы состояний публичные?
источник

ИЛ

Иван Лещёв in PHP
ну там сомнительный приват был, который следует проверять
источник

MM

Maksim Masiukevich in PHP
Максим Федоров
если взять бизнес-сущность, то как тестить изменение инварианта? Городить срезы состояний публичные?
Че?
источник

MM

Maksim Masiukevich in PHP
Иван Лещёв
ну там сомнительный приват был, который следует проверять
Ок, для теста пускай рефлекшен заюзает. 2 строки

Никаких геттеров там не нужно
источник

МФ

Максим Федоров... in PHP
ну есть платеж, в тесте проводим его до отмененного... $payment->cancel();
как узнать, достигли ли цели?
источник

ИЛ

Иван Лещёв in PHP
Максим Федоров
если взять бизнес-сущность, то как тестить изменение инварианта? Городить срезы состояний публичные?
у тебя есть интерфейс
ты через него работаешь, положил данные - проверил реакцию
если у тебя там коллекция, то ты не проверяешь её, ты делаешь адд и проверяешь контейн
источник

AL

Anton Lakotka in PHP
Максим Федоров
если взять бизнес-сущность, то как тестить изменение инварианта? Городить срезы состояний публичные?
любой приват всегда можно конвертировать в отдельный класс у которого уже будут публичные методы и тестировать его отдельно.
а в том месте где был приват использовать его, либо через DI либо напрямую
источник

ИЛ

Иван Лещёв in PHP
Максим Федоров
ну есть платеж, в тесте проводим его до отмененного... $payment->cancel();
как узнать, достигли ли цели?
у тебя должно быть изКанцелед
источник

MM

Maksim Masiukevich in PHP
Максим Федоров
ну есть платеж, в тесте проводим его до отмененного... $payment->cancel();
как узнать, достигли ли цели?
А что внутри твоей "бизнесс сущности"? Изменение поля в базе, или вызов отмены в пс?
источник

МФ

Максим Федоров... in PHP
Maksim Masiukevich
А что внутри твоей "бизнесс сущности"? Изменение поля в базе, или вызов отмены в пс?
поля в БД
источник

MM

Maksim Masiukevich in PHP
Тогда в чем вопрос?
источник

МФ

Максим Федоров... in PHP
Иван Лещёв
у тебя должно быть изКанцелед
я про это выше и говорил... стейтмашина на минималках
источник

МФ

Максим Федоров... in PHP
Maksim Masiukevich
Тогда в чем вопрос?
но это функциональный тест, тут проблем нет
источник

ИЛ

Иван Лещёв in PHP
не надо играться в сомнительное сокрытие
источник