Size: a a a

2020 May 29

V

Victooor in Yii Framework 2
аблин 🤦🏻‍♂️ я с DetailView спутал...
источник

Д

Дмитрий in Yii Framework 2
Victooor
аблин 🤦🏻‍♂️ я с DetailView спутал...
Там тоже можно указать
источник

V

Victooor in Yii Framework 2
сцук думаю какого же оно не пашет...
источник

V

Victooor in Yii Framework 2
Дмитрий
Там тоже можно указать
там пишу
источник

A

Artyom in Yii Framework 2
Привет. Может кто знает, сохраняю в тесте модель, она сохраняется, все трушно и есть id, причем с id все четко каждый тест инкриментирует его, но после окончания теста и во время теста в бд ничего нет.
Такое ощущение что оно в транзакции все делает, это нормальное поведение тестов? Или я чего-то не догоняю, или делаю чего-то не так...
источник

A

Artyom in Yii Framework 2
в доке, вроде ничего пор такое не написано.
источник

Д

Дмитрий in Yii Framework 2
Victooor
там пишу
Ну можешь и так. Я обычно перечисляю руками так как обычно у меня кастомные значения выводятся
источник

A

Artyom in Yii Framework 2
какая-то б-дь магия.
источник

NO

Nex Otaku in Yii Framework 2
ты чего, для теста ведь отдельная БД заводится
источник

NO

Nex Otaku in Yii Framework 2
иногда даже в памяти делают чтобы быстрее было )
источник

A

Artyom in Yii Framework 2
Ну, вообще-то я когда-то сам такой хелпер делал, т.к. не было отдельной базы для проекта, не ожиданно просто и по-моему до отката транзакции обычно можно все таки посмотреть результат в базе данных (хотя возможно я что-то путаю). Самое интересное, что-то когда-то давно на собесе рассказывал про свой такой костыль и у меня так же было что-то вроде фикстур с таким же принципом и мне рассказывали что это не совсем правильно и какие-то там проблемы могут возникать, но мне лично п-й было что они думают об этом, т.к. когда я это делал ничего удобнее не придумал, а корячить рабочую базу не хотелось. А тут это "неправильное" на уровне модуля тестирования yii2 внедрено, нежданчик вот такой, правда по коду, бегло, не нашел где оно это делает...
Нашел, в документации, что есть опция в конфиге transaction в true по умолчанию, и, если я все правильно понял, то она именно это и делает, т.е. оборачивает все соединения в транзакцию и потом делает роллбек, интересно вот, а фикстуры тоже роллбек делает?
источник

A

Artyom in Yii Framework 2
Кстати, такой момент, есть ли готовое решение, чтобы не запускать фикстуру для каждого отдельного тестметода? Фикстуры большие получились, очень долго выполняются, для отладки решил просто вручную один раз выполнить, а в тесте пока закомментил.
источник

A

Artyom in Yii Framework 2
ну, т.е., я не вникал особо, но походу оно выполняет фикстуры из теста для каждого метода. Оно конечно пофигу, когда там мало данных, но в моем случае самый минимум все равно долго.
источник

A

Artyom in Yii Framework 2
ай ладно, много текста😅
источник

NO

Nex Otaku in Yii Framework 2
Чтобы не было долго, пиши тестируемый не завязанный на БД код... Но до этого дорасти нужно )
источник

A

Artyom in Yii Framework 2
сча заценю, если фикстуры в транзакции тоже выполняются, то может на сервере получится отдельную тестовую поднять, было бы идеально, просто они с-а большие.
источник

A

Artyom in Yii Framework 2
Nex Otaku
Чтобы не было долго, пиши тестируемый не завязанный на БД код... Но до этого дорасти нужно )
Ну, по сути все равно все сводится к получению и выводу данных из бд или файловой системы, как не крути. А какие-нибудь моки, мне по-моему такой вариант. Во-первых, нужно отестить как запросы работают, во-вторых я быстрее сострарюсь чем сделаю какое-то нормальное количество правдоподобных моков, я тут данные для фикстур по минимуму притомился вытягивать.
источник

NO

Nex Otaku in Yii Framework 2
Если бы всё сводилось к вводу-выводу из БД, то тестировать было бы нечего.
источник

A

Artyom in Yii Framework 2
фикстуры, все таки гарантия того что данные в тесте будут постоянными.
источник

A

Artyom in Yii Framework 2
Nex Otaku
Если бы всё сводилось к вводу-выводу из БД, то тестировать было бы нечего.
Я имел ввиду что суть работы в основном в этом, но понятно, что есть еще куча всяких но. Но в основном именно это и нужно, считай интерфейс к бд.
источник