Size: a a a

2020 December 17

АГ

Алексей Гевондян... in PHP
ну хз, как-то обходятся люди, раз не запилили до сих пор этого. просто ты хочешь проверить какую-то часть объекта, а так то вроде, если это юнит тест, то на выходе ожидается вполне конкретная структура, и можно используя обращение к конкретной части этой структуры, получить то что нужно. тут даже в общем-то не обязательно защитные проверки делать на наличие промежуточных полей / индексов массива. падение теста - тоже норм.
источник

АГ

Алексей Гевондян... in PHP
экзотический кейс) но в целом да, что-то такое не лишне было бы. но думаю что тут решение в либах для работы с массивами / объектами (а ля коллекции), для фильтрации удобной и получения каких-то частей.
источник

ЕР

Евгений Ромашкан... in PHP
Алексей Гевондян
ну хз, как-то обходятся люди, раз не запилили до сих пор этого. просто ты хочешь проверить какую-то часть объекта, а так то вроде, если это юнит тест, то на выходе ожидается вполне конкретная структура, и можно используя обращение к конкретной части этой структуры, получить то что нужно. тут даже в общем-то не обязательно защитные проверки делать на наличие промежуточных полей / индексов массива. падение теста - тоже норм.
Ну это просто более удобный синтакс для пачки ассертов
источник

SP

Sergey Protko in PHP
Алексей Гевондян
ну хз, как-то обходятся люди, раз не запилили до сих пор этого. просто ты хочешь проверить какую-то часть объекта, а так то вроде, если это юнит тест, то на выходе ожидается вполне конкретная структура, и можно используя обращение к конкретной части этой структуры, получить то что нужно. тут даже в общем-то не обязательно защитные проверки делать на наличие промежуточных полей / индексов массива. падение теста - тоже норм.
В php судя по всему тупо воображения не хватает судя по качеству решений
источник

ЕР

Евгений Ромашкан... in PHP
Я свой ассерт писал для этого
источник

ЕР

Евгений Ромашкан... in PHP
Ассертилка сравнивающая поля объекта с массивом включая вложенные, и всё
+ костыль чтоб связи из доктрины подгрузить если это сущности
источник

АГ

Алексей Гевондян... in PHP
можно вообще на голых array_filter / array_column получение сделать нужной части, ну и обращениях по индексу / стрелкой, имхо норм
источник

АГ

Алексей Гевондян... in PHP
array_keys, array_values сюда же
источник

ЕР

Евгений Ромашкан... in PHP
Да ты нейросеть чтоль
источник

КГ

Константин Грачев... in PHP
Евгений Ромашкан
Да ты нейросеть чтоль
Нейросеть даёт результаты, а не промежучный поток мысли)
источник

АГ

Алексей Гевондян... in PHP
ну вот можно рассмотреть конкретный кейс, и написать, например, через что на чистой пыхе можно получить значение / массив скаляров / объект / часть массива из структуры и сравнить ее с ожидаемой
источник

АГ

Алексей Гевондян... in PHP
все решаемо, так с ходу не приходят в голову такие кейсы, чтобы прям никак нельзя было сделать. ну да, возможно многовато кода получится, будет не очень понятно с ходу, громоздко... ну раз задача такая - то видимо норм
источник

SP

Sergey Protko in PHP
Алексей Гевондян
все решаемо, так с ходу не приходят в голову такие кейсы, чтобы прям никак нельзя было сделать. ну да, возможно многовато кода получится, будет не очень понятно с ходу, громоздко... ну раз задача такая - то видимо норм
Блядь я даже привел пример, к чему твои высеры?
источник

SP

Sergey Protko in PHP
Решаемо не решаемо...
источник

АГ

Алексей Гевондян... in PHP
Sergey Protko
self::assertThat(DataStructureShould::beEqual(
   expectArrayContains([
       expectObjectContains([
            "partial" => ["objectKey"  => "value"]
       ])
   ])
)
)

??
assertArrayHasKey('partial', $data);
assertArrayHasKey('objectKey', $data['partial']);
assertSame('value', $data['partial']['objectKey']); // достаточно и одного этого ассерта в общем-то.. ну либо я чего-то не догоняю
источник

SP

Sergey Protko in PHP
Евгений Ромашкан
Там не много ведь)
ну надоело все писать потому что все плохо
источник

SP

Sergey Protko in PHP
Алексей Гевондян
assertArrayHasKey('partial', $data);
assertArrayHasKey('objectKey', $data['partial']);
assertSame('value', $data['partial']['objectKey']); // достаточно и одного этого ассерта в общем-то.. ну либо я чего-то не догоняю
не догоняешь
источник

ЕР

Евгений Ромашкан... in PHP
Sergey Protko
ну надоело все писать потому что все плохо
Ну я экосистемами не избалован, поэтому даж не искал кажется)
источник

АГ

Алексей Гевондян... in PHP
видимо нужно что-то для замены
foreach($data as $item) {
assertObjectHasAttribute('attr', $item);
}

да?
источник

DT

Dmitriy Tkachenko in PHP
Если не нужен комбайн, то напиши под свой случай ассертер
источник