@yii2ru

Страница 1518 из 1721
Alexey
26.07.2018
13:39:28
Юнит тесты могут использовать базу

Кодесепшн расширяет тест кейсы phpunit и добавляет поддержку _fixtures() с коробки

Если хочешь мокать базу, то тут надо отказываться от AR в пользу репозиториев ?

И мокать интерфейсы репозиториев (:

Google
Dmitriy
26.07.2018
13:44:00
Юнит тесты могут использовать базу
где-то в твоей вселенной. но не дядя боб, не Фаулер с тобой не согласны. но спорить об этом я не собираюсь . не в этом вопрос

Alexey
26.07.2018
13:44:10
лол

Saško
26.07.2018
13:44:12
в базу тогда это не юнит тест
т.е. поменяли схему в базе, а в АР/моке забыли тесты проходят, а в реальности падает так чтоли? АР полностью зависит от структуры таблицы, так что если ты хочешь тестить модель, то очевидно в связке с БД

Alexey
26.07.2018
13:44:28
ты не дружишь с терминологией и не понимаешь, что такое юнит

отсюда и проблемы (:

Dmitriy
26.07.2018
13:45:15
Alexey
26.07.2018
13:45:39
а мог бы сгенерить фейкером фикстуры за 5 минут и не гонять лысого

а потом еще и переиспользовать фикстуры в функциональных тестах

Dmitriy
26.07.2018
13:47:26
когда я захочу протестировать еще и бд. конечно сделаю . но я не хочу тестировать и бд

Google
Saško
26.07.2018
13:51:58
так тесты и упадут.
чойта, если моки не зависят от базы?

Dmitriy
26.07.2018
13:52:54
чойта, если моки не зависят от базы?
замокали $user->username потом везде поменяли на $user->user_name тесты упали.

Alexey
26.07.2018
13:53:11
Dmitriy
26.07.2018
13:53:31
ты все еще не понимаешь, что такое Unit
я тебе выше ссылку дал. ладно ты мне не веришь. но Фесору то

Saško
26.07.2018
13:54:03
замокали $user->username потом везде поменяли на $user->user_name тесты упали.
так нет, мы в базе поменяли username на user_name а в модели забыли на тестах оно будет работать, а на живой базе упадёт

потому что в модели у тебя осталось username и мок тоже username

Alexey
26.07.2018
13:54:34
попытка оправдать свое непонимание, апеллируя к чужому авторитету, тебе тут слабо поможет

Alexey
26.07.2018
13:55:04
юнит это кусок кода

Dmitriy
26.07.2018
13:55:27
Alexey
26.07.2018
13:55:34
ты считаешь, что у юнита не может быть зависимостей, но это не так

Saško
26.07.2018
13:55:38
у тебя user_name не замокан. а ты обращаешься к нему
нет, ты обращаешься к username везде в коде но в базе уже поле называется user_name

Alexey
26.07.2018
13:55:54
просто потому что твои юниты это не чистые функции

Dmitriy
26.07.2018
13:56:25
нет, ты обращаешься к username везде в коде но в базе уже поле называется user_name
так это другой вид тестирования. я проверяю другой код а не корректность работы AR

Alexey
26.07.2018
13:56:26
и они МОГУТ и БУДУТ иметь зависимости от какого-то стейта ?

в данном случае стейт это схема и данные в бд

Saško
26.07.2018
13:57:22
так это другой вид тестирования. я проверяю другой код а не корректность работы AR
так вот тебе ж и говорят, что ты занимаешься излишним усложнением жизни себе и куче сотрудников, просто в пустую растраичвая человеко-часы тогда как есть инструмент fixtures который не имеет этих минусов

Google
Alexey
26.07.2018
13:58:07
причем yii2-faker позволяет фикстуры генерить, описывая шаблон за пару минут

и грузить их в тесты, используя механизм ActiveFixture, поддерживаемый самим Yii2 модулем в Codeception

Vadim
26.07.2018
13:58:41
Как сделать post-ссылку? ['data-method' => 'POST'] не работает

Alexey
26.07.2018
13:59:04
Vadim
26.07.2018
14:00:31
подключить ассет bootstrap-js
'yii\bootstrap\BootstrapAsset', - так?

Alexey
26.07.2018
14:02:45
BootstrapPluginAsset

Dmitriy
26.07.2018
14:03:31
так вот тебе ж и говорят, что ты занимаешься излишним усложнением жизни себе и куче сотрудников, просто в пустую растраичвая человеко-часы тогда как есть инструмент fixtures который не имеет этих минусов
но за-то имеет другие минусы. Но вынесение вердикта через интернет о разработке продукта не зная его нюансов это конечно здорово, мне бы такой дар. Но в данном случаи нужно оттестировать без бд. иначе тесты будут выполнятся +3 часа.

Alexey
26.07.2018
14:04:54
и тогда она совсем не обязательно будет грузиться 3 часа

Dmitriy
26.07.2018
14:05:15
и тогда она совсем не обязательно будет грузиться 3 часа
тогда результат генерации будет другой

Alexey
26.07.2018
14:05:40
с чего бы? )

Dmitriy
26.07.2018
14:05:59
с того что для теста нужен весь датасет в 20гб

Alexey
26.07.2018
14:06:04
ужс

Saško
26.07.2018
14:06:33
но за-то имеет другие минусы. Но вынесение вердикта через интернет о разработке продукта не зная его нюансов это конечно здорово, мне бы такой дар. Но в данном случаи нужно оттестировать без бд. иначе тесты будут выполнятся +3 часа.
понимаешь, в чем проблема, ты тратишь время и символы на то, чтобы пускать саркастические шуточки, типа «ебать вы тупые, чуваки, придумали какой у меня проект, а не знаете какой он на самом деле» вместо того, чтобы потратить это же время на то, чтобы прямо пояснить особенность твоего проекта, почему ты не можешь использовать базу

Alexey
26.07.2018
14:06:49
какое это имеет отношение к юнит тестированию? это нагрузочное тестирование выходит

Alexey
26.07.2018
14:08:07
фунционал как тестировать ?
функциональными тестами?

Vadim
26.07.2018
14:08:11
Google
Alexey
26.07.2018
14:08:21
твой код должен работать одинако на любых наборах данных

Dmitriy
26.07.2018
14:08:22
функциональными тестами?
ну а базу надо накатить.

Vadim
26.07.2018
14:08:23
Не пашет все равное, но вроде должен пахать...

Alexey
26.07.2018
14:08:26
хоть на пустой базе, хоть на полной

для этого и используются фикстуры - чтобы обеспечить минимальный стейт приложения (:

позволяющий все протестить

Alexey
26.07.2018
14:09:20
ну такое

это значит что код плохо деструктурирован

Admin
ERROR: S client not available

Saško
26.07.2018
14:09:54
и ты написал 20гигабайт моков?

Alexey
26.07.2018
14:11:06
тебе видней конечно
если у тебя 20 гиг данных и ты пытаешься использовать одновременно и AR (который вообще не знает про инверсию зависимостей), и юнит тесты - тут все очевидно

Saško
26.07.2018
14:11:17
нет. это вы тут решили поспорить о том что такое тестирование. из-за банального вопроса. при том что проблему я уже решил.
мы не спорим, а задаем вопросы, нафига оно тебе такое и только на 45м вопросе сквозь миллионы самодовольного сарказма мы хоть что-то узнали о ньюансах

Alexey
26.07.2018
14:11:31
как минимум плохо разнесены слои

Alexey
26.07.2018
14:11:55
потому что если бы они были разнесены хорошо - вопроса бы просто не возникло (:

и это мы уже проходили, да

Google
Dmitriy
26.07.2018
14:12:55
ты просто не умеешь признавать свои ошибки
кто бы говорил. особенно когда тебе несколько человек говорили за тесты...

Alexey
26.07.2018
14:13:21
кто бы говорил. особенно когда тебе несколько человек говорили за тесты...
а зачем мне говорить про тесты, если у меня вся разработка через TDD и BDD? ?

Saško
26.07.2018
14:13:49
я тупо не хочу спорить. о чем я выше и сказал. я уже проходил этот диалог
ну так сразу бы пояснил что база будет 20 гиг просто тут очень часто бывает, приходит человек и говорит «вы знаете, я ем и мне больно. как не есть?» ему поясняют что это странный вопрос, а он продолжает утверждать «нет, я где-то читал что есть праноеды, мне нужно отказаться от еды» а через стопицот вопросов оказывается, что он ест с ржавого тесака, и проблема не в еде, а в подходе ну типтово

Alexey
26.07.2018
14:15:39
самому то не смешно ?
смешно видеть, как люди страдают от собственной гордости и неспособности снять шоры

Dmitriy
26.07.2018
14:16:23
https://t.me/yii2ru/81825 вот юнит

Alexey
26.07.2018
14:16:56
причем тут методы вообще?

Alexey
26.07.2018
14:17:07
юнит и функцией может быть

это не так

юнит и маленьким модулем можеть быть

юнит в классическом понимании это минимально декомпозируемый кусок кода

в ООП это метод, но юнит тестирование и в не ООП языках применяется

если у тебя метод зависит от 20-гигабайтового сета данных (сайд эффекты, да-да), то у тебя точно не юнит тест запускается (:

Screamie
26.07.2018
14:20:43
Народ можно прервать ваш пылкий спор? =) У меня какое-то загадчное поведение AR =) Кто может в SQL? Есть такой кусок запроса в SearchAR: ->select(['author.*', 'COUNT(post.author_id) AS posts_count, COUNT(news.author_id) AS news_count']) ->JoinWith(['posts', 'news']) ->groupBy('author.user_id') ->distinct(); в AR Auhtor ловлю поля posts_count и news_count. Для всех авторов выводятся норм, а для двух почему-то странные цифры у одно 17345 (хотя всего там максимум 8000 записей) для другого 36.

Dmitriy
26.07.2018
14:20:44
смешно видеть, как люди страдают от собственной гордости и неспособности снять шоры
так я ссылаюсь же на кого-то. если будет спор как думаешь какую точку зрения выберу я ? твою или чувака который хорошо зарекомендовал себя в кругах ? покажи мне авторитетную точку зрения и я изменю мнение.

Dmitriy
26.07.2018
14:21:40
я уже не в том возрасте, чтобы кому-то что-то доказывать ?
лол. ты тред выше почитай. мин 30 мы этим и занимаемся.

Alexey
26.07.2018
14:22:00
я нет, я лишь шарю свой экспириенс в тестировании

он уже никуда не денется и не изменится (:

И раз уж ты пытаешься на чужом авторитете выехать - почитай хотя б Фаулера

Страница 1518 из 1721