@prophp7

Страница 1059 из 1387
Sergey
07.05.2018
13:19:36
всем привет. ребятки, кто тестами занимается ? есть вопрос относительно того, как правильно тестировать некоторые классы. К примеру есть класс с валидацией. По сути это юнит, однако валидация может лесть в базу, скажем проверить на существование. Он сюда вопрос как правильно пойдоти к тестированию ?
"проверка на существование" это не задача валидатора. За это у тебя уникальный индекс в базе отвечает. С точки зрения UX максимум что надо - отдельный метод который говорит "да или нет", но это не валидатор. Валидатор к слову этот севрси может использовать и тогда его можно заменить на мок.

Evgeniy
07.05.2018
13:20:03
о мы с Сергеем одинаково думаем

Google
Anatoliy
07.05.2018
13:20:08
Лесть в базу это не задача на валидацию наверно
Скорее это не задача юнит тестов.

Sergey
07.05.2018
13:20:10
Скорее это не задача юнит тестов.
ммм.... задача юнит тестов выявлять херовые границы юнитов)

Anatoliy
07.05.2018
13:20:31
Лесть в базу это не задача на валидацию наверно
функциональные тесты походу могут.

Evgeniy
07.05.2018
13:20:40
еще одна проблема если ты в валидации проверяешь существование

Sergey
07.05.2018
13:20:44
функциональные тесты походу могут.
что могут? тут проблема в другом

Evgeniy
07.05.2018
13:21:00
какая гарантия что после проверки запись не удалилась до момента выполнения запроса?)

Sergey
07.05.2018
13:21:01
речь о валидаторе а не о ассерте каком в тестах

Evgeniy
07.05.2018
13:21:24
функциональные тесты походу могут.
это не о тебе это другие виды тестов

я выше описал реальный кейс с которым можно столкнуться

и придется проверять целостность

и возвращать нужные сообщения)

Александр
07.05.2018
14:24:06
Всем привет. Где можно почитать best practice как DTOшки использовать?

Google
Vitaly
07.05.2018
14:27:50
Всем привет. Где можно почитать best practice как DTOшки использовать?
В смысле как? Ну вот например, как их можно использовать с доктриной https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/dql-doctrine-query-language.html#quot-new-quot-operator-syntax

Александр
07.05.2018
14:29:18
В смысле как? Ну вот например, как их можно использовать с доктриной https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/dql-doctrine-query-language.html#quot-new-quot-operator-syntax
о, прикольная штука, не знал о такой возможности. Меня больше интересует как их удобнее использовать. Меня вот напрягают куча геттеров сеттеров тупых, можно ли у дтошек делать паблик поля и напрямую к ним обращаться? Или это моветон?

Александр
07.05.2018
14:30:55
Может быть ты говоришь о Value Object?
насколько я понимаю мне именно ДТО нужно, чтобы между слоями приложения передавать данные

Александр
07.05.2018
14:31:13
но возможно я плаваю в терминах

По котлину книжку читаю, блин хочу проперти оттуда)

Bohdan
07.05.2018
14:32:45
дата классы, ага

Sergey
07.05.2018
14:33:51
а я хочу возможность типы описывать для структурного тайпинга

type SomeData = [ 'foo' => string, 'bar' => int[] ];

Антон
07.05.2018
14:54:18
DTO может быть без геттеров и сеттеров? Только конструктор и публичные свойства?

Или это уже в VO превращается?

Dmitry
07.05.2018
15:05:30
если ты хочешь, что бы DTO был иммутабельным, а стоит хотеть, то тебе нужны геттеры и не нужны сеттеры ;)

Bohdan
07.05.2018
15:10:12
если ты хочешь, что бы DTO был иммутабельным, а стоит хотеть, то тебе нужны геттеры и не нужны сеттеры ;)
дто не особо нужно быть иммутабельным) не критично, по крайней мере

Dmitry
07.05.2018
15:17:26
хуже от этого не будет

Konstantin
07.05.2018
15:44:15
https://habr.com/post/313884/ мож не видел кто

Sergey
07.05.2018
15:44:18
Или это уже в VO превращается?
VO это как просто объект, но который с другими объектами по значению сравнивается.

Типа.... class Name { private $firstName; private $lastName; public function __construct(string $firstName, string $lastName) { $this->firstName = $firstName; $this->lastName = $lastName; } public function isEqual(self $anotherName) { return $this->firstName === $otherName->firstName && $this->lastName === $otherName->lastName; } }

Google
Sergey
07.05.2018
15:46:54
вот это VO. А DTO это просто пачка данных, ненастоящий объект, просто структура.

Антон
07.05.2018
16:01:10
Спасибо

Ребята. Хочу число на порядки разложить по 3 и в массив, но str_split раскладывает не с конца строки, а сначала. Есть может другая какая то функция встроенная?

Т.е. число 1257357 разложить как 1/257/357 в массиве

Ivan
07.05.2018
17:37:27
а перевернуть строку?

╳Click here
07.05.2018
17:37:35
лучше конечно решить это православно через проход строки, как элементов массива

Ivan
07.05.2018
17:38:51
почему?

╳Click here
07.05.2018
17:39:34
почему?
быстрее будет

Антон
07.05.2018
17:39:44
Перевернуть строку имхо плохая идея

Антон
07.05.2018
17:40:19
Тогда в группах опять придется переворот делать

Ivan
07.05.2018
17:40:47
большая потеря скорости?

Антон
07.05.2018
17:48:34
И в массиве перевёрнутые значения. Тогда к ним опять применять strrev

╳Click here
07.05.2018
17:55:20
И потом explode в массив?
а, ну дальше что хочешь делаешь, я тебе строку тут отдаю

Антон
07.05.2018
17:55:32
Элегантное решение какое то ищу )

Google
Антон
07.05.2018
17:55:37
Может математическое

Типа байты, килобайты, мегобайты

╳Click here
07.05.2018
17:56:31
Типа байты, килобайты, мегобайты
ещё раз, там всегда на входе целые числа?

Антон
07.05.2018
17:56:36
Да

Поле типа int

Ну или строка целого числа

Думал какой нибудь логарифм прицепить. Не придумал

Shmaltorhbooks
07.05.2018
18:14:32
number_format норм решение же

БОГАТЫРЪ
07.05.2018
18:35:48
Как проверить нормально без гавнокода-костыля? $this->request['site-captcha-page-order-on'] = $request->input('site-captcha-page-order-on'); что это может принимать пустоту (null), то есть если пустота то ничего

Admin
ERROR: S client not available

БОГАТЫРЪ
07.05.2018
18:35:58
с if else проверять?

Valentin
07.05.2018
18:45:43
?? null ?

Гена
07.05.2018
18:48:07
If isset($arr['key']) , если не существует или значение нулл, то вернёт фалс

БОГАТЫРЪ
07.05.2018
18:52:10
спасибо

но я юзаю laravel, мб кто юзает есть решением?

Антон
07.05.2018
18:53:11
что ты пытаешься сделать то? словами

Nikita
07.05.2018
18:53:16
Кто понял что он хочет?)

Гена
07.05.2018
18:53:23
Я

Антон
07.05.2018
18:53:27
проверит есть ли в request что то по ключу?

Sergey
07.05.2018
18:53:28
но я юзаю laravel, мб кто юзает есть решением?
у тебя проблема с тем что ты ларавель юзаешь?

Google
Антон
07.05.2018
18:53:51
помоему тут проблема с объяснением а не фреймворком =)

БОГАТЫРЪ
07.05.2018
18:54:04
ну

Nikita
07.05.2018
18:54:04
$request->has('key') - оно?

Гена
07.05.2018
18:54:05
но я юзаю laravel, мб кто юзает есть решением?
Делай нативно, так проще понятнее и быстрее

f4rt~
07.05.2018
18:54:06
вместо того что бы сделать $request->has('field')

либо $request->get('something) ?? 'asd'

Гена
07.05.2018
18:54:34
$request->has('key') - оно?
Там проверка по ключу

БОГАТЫРЪ
07.05.2018
18:54:40
ок

Антон
07.05.2018
18:54:45
вместо того что бы сделать $request->has('field')
не хочет он так по красивому

БОГАТЫРЪ
07.05.2018
18:54:58
$request это массив

который собирает с инпута

f4rt~
07.05.2018
18:55:09
$request это объект

$request->all массив

Антон
07.05.2018
18:55:20
это объект так то был

БОГАТЫРЪ
07.05.2018
18:55:20
ну или так

то есть вы против $this?

f4rt~
07.05.2018
18:56:39
зачем маппить куда-то весь реквест ?

БОГАТЫРЪ
07.05.2018
18:56:46
$this->request['site-captcha-page-order-on'] = $request->input('site-captcha-page-order-on');

в один

Антон
07.05.2018
18:56:59
что то адское

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