@rubylang

Страница 1427 из 1684
Alexander
16.03.2018
08:59:50
ojab
16.03.2018
09:00:40
<%= ActionDispatch::Routing::RoutesInspector.new(Rails.application.routes.routes).format(ActionDispatch::Routing::HtmlTableFormatter.new(self)) %>

Alexander
16.03.2018
09:02:26
<%= ActionDispatch::Routing::RoutesInspector.new(Rails.application.routes.routes).format(ActionDispatch::Routing::HtmlTableFormatter.new(self)) %>
спасибо, также накопал реализацию https://github.com/rails/rails/blob/master/railties/lib/rails/info_controller.rb#L21

Vasiliy
16.03.2018
09:12:09
а тебе не лучше доку написать, т.к. список роутов без параметров весьма бесполезен кмк

Google
Michael
16.03.2018
09:29:11
Ребята, подскажите пожалуйста, есть ли какие-то инструменты, которыми можно выявить самые слабые места моих тестов? количество тестов уже перевалило за 4к+ и полный прогон длится 1 час, нужно срочно с этим что-то делать

ojab
16.03.2018
09:31:43
https://github.com/palkan/test-prof и ссылки в его readme

Michael
16.03.2018
09:32:04
оо Владимир на фотке))

должно быть что-то интересное)) я у него учился))

ojab спасибо, сейчас буду курить

ojab
16.03.2018
09:34:05
ну и https://relishapp.com/rspec/rspec-core/docs/configuration/profile-examples заодно для базовых проверок

Lavrushchik
16.03.2018
09:38:43
как можно получить доступ к кукам из модели?

Semyon
16.03.2018
09:40:46
Это не нужно делать :)

Michael
16.03.2018
09:43:40
не писать юнит тесты? Оо
не хочу, развивать тему в этом ключе и т.д. тесты уже есть, возник вопрос, я попросил подсказать инструмент, мне подсказали, а что делать дальше с этими тестами, это будут уже другой вопрос

Google
Anton
16.03.2018
09:44:22
и мб сторонние сервисы

Michael
16.03.2018
09:44:51
https://github.com/grosser/parallel_tests есть еще такое, существенно ускорит процесс
да я смотрел на него, но тут нужно решать проблему, а не обходить ее, всеравно 4к тестов не должны прогоняться час

Anton
16.03.2018
09:45:11
можешь с малого начать

попробовать разные папки позапускать и посмотреть где дольше всего

Michael
16.03.2018
09:45:33
если бы их было 8к, и они прогонялись час, то в принципе параллелс был бы решением

Anton
16.03.2018
09:45:39
+ в рспеке есть штука для самых медленных тестов

Michael
16.03.2018
09:46:53
в любом случае, спасибо большое, за ответы, сейчас буду искать корни проблемы, а потом уже буду думать как лучше их решить

похоже у меня просто много обращений к DB и нужно смотреть где нужно создавать фабрики, а где можно обойтись и build, ну и стабы применять

Michael
16.03.2018
09:50:09
моки, стабы и даблы спасут тебя
да, я понимаю, просто не хочу, натыкивать их где попало

Anton
16.03.2018
09:50:11
ну и мб попытка зависимости стабить (если можно)

да, я понимаю, просто не хочу, натыкивать их где попало
ну, это то, с чего я начал. тебе по сути переписать интеграционные тесты надо будет на юнит тесты

потому что по хорошему, когда зависимости изолированны, можно гонять 2к тестов за 3 минуты

Finished in 3 minutes 27.7 seconds (files took 5.95 seconds to load) 2156 examples, 3 failures, 13 pending

с 96% покрытием

Michael
16.03.2018
09:53:11
ну, это то, с чего я начал. тебе по сути переписать интеграционные тесты надо будет на юнит тесты
ну у меня в основном юнит тесты, я не тестирую каждую группу целиком, я стараюсь и код писать так, что бы потом можно быть протестировать методы по отдельности

Google
Anton
16.03.2018
09:54:05
смотри пример class Service def call(payload) User.create(payload) end end

если тут не мокать модель - будут интеграционные тесты

Michael
16.03.2018
09:54:29
Anton
16.03.2018
09:54:31
даже есть просто тестировать create - будут интеграционные

потому что валидация + колбэки

Michael
16.03.2018
09:54:41
смысл мне лезть дальше в юзеров

если их я протестирую отдельно

Anton
16.03.2018
09:54:58
ну вот как бы да, хотя 1 интеграционный нужен

Michael
16.03.2018
09:55:08
я только проверю что User.create вызовется с парамметром (payload)

Anton
16.03.2018
09:55:28
ну, я бы проверил для разных случаев + написал 1 интеграционный

на весь флоу

будет 1 медленный тест, но он проверит все контракты

Michael
16.03.2018
09:55:58
я понял мысль

Anton
16.03.2018
09:56:03
и по сути

если задуматься и капнуть дальше

тулзы аля тетс пруф - это просто способ побороть низкое качество тестов

и это хороший инструмент

Michael
16.03.2018
09:56:34
да действительно может быть проблемка

Anton
16.03.2018
09:56:49
просто сама проблема куда глубже. поэтому возможно еще стоит начать с культуры в команде

+ править перформанс

Google
Anton
16.03.2018
09:57:00
потому что смотри

ты сейчас потюнишь все, будет быстрее

но коллеги продолжат хуячить медленные тесты

и ты опять будешь тратить время на тюнинг

Michael
16.03.2018
09:57:33
да нас всего двое)) поэтому не сложно будет договоритсья))

Anton
16.03.2018
09:57:55
вам повезло ?

Michael
16.03.2018
09:58:08
ну и я ревью каждой задачи то всеравно делаю

Anton
16.03.2018
09:58:16
но я бы все равно начал с культуры + есть еще проблема в том, что рельса очень плохо дает мокать зависимости

Michael
16.03.2018
09:58:27
вам повезло ?
ну тут как сказать((

Anton
16.03.2018
09:58:57
ну тут как сказать((
я все равно надеюсь, что смог натолкнуть на мысли какие-то

возможно надо это написать, что бы пошарить с толпой людей

Karina
16.03.2018
10:48:15
ребята, никто не знает как сделать такую штуку: мне надо из другого приложения постучаться в рельсу на ендпойнт, в котором прописана девайсовская штука - before_action :authenticate_manager! запрос на аутентифицирование менеджера отправляю - всё ок. Но естественно, при повторном запросе рельса уже не помнит, что меня аутентифицировала. Вот как быть?

Karina
16.03.2018
10:51:29
фиг знает. как в девайсе

Igor
16.03.2018
10:52:18
Тогда вначале узнать

Aleksey
16.03.2018
10:52:40
конечно же вынести логику эндпоинта в отдельный сервис, и сделать два эндпоинта - один для апи, второй для юзеров - это слишком не кошерно?

щас бы куки эмулировать в апи запросах )

Karina
16.03.2018
10:54:25
Aleksey
16.03.2018
10:55:09
не сервис, а отдельный класс который энкапсулирует что там в ендпоинте происходит

Google
Aleksey
16.03.2018
10:55:20
и просто два роута будут - один для апи, второй для юзера, делающие одно и то же

а код в одном месте

Aleksey
16.03.2018
10:56:19
обращайтесь ?

Denis
16.03.2018
10:57:40
Привет. Почему create_or_update не срабатывает? Customer.find_or_initialize_by(mobile_phone: '79811223344').tap {|c| c.update!(mobile_phone: '79811223344') } выбивает Возникли ошибки: Мобильный телефон уже существует

Aleksey
16.03.2018
10:59:48
а в чем логика вообще описанного кода?)

найти кастомера с телефоном АА, чтобы потом апдейтнуть ему телефон снова на АА?)

rekero
16.03.2018
11:00:29
почему телефон с плюсом, но не строка?

Dmitry
16.03.2018
11:01:50
Ребят, подскажите, как мне сделать манки патчинг либы если из за отсутствия ее не проходит компиляция кода, т.е. например шеф рецепт который потом эту либу поставит просто не стартует из за того что в нем сделан этот патчинг манкипатч такого вида https://tiger.d.pr/SmFqiV

Denis
16.03.2018
11:02:14
Логика. Если нашло в базе запись с таким телефоном обновить эту запись. если не нашло создать.

Dmitry
16.03.2018
11:02:39
есть ли какойто трюк чтобы require не проверялся на этапе компиляции

Aleksey
16.03.2018
11:02:51
Customer.find_or_create? не?)

Denis
16.03.2018
11:04:02
Не работает

Zamira
16.03.2018
11:05:09
Надо разбираться с причиной почему не работает и устранять, а не прыгать по вариантам в попытке найти удачу.

Aleksey
16.03.2018
11:05:18
Customer.where(mobile_phone: ‘12345’).first_or_create

Vasiliy
16.03.2018
11:06:30
Denis
16.03.2018
11:07:51
Раньше у меня find_or_initialize_by работал отлично.а именно в этом случае не срабатывает верно

Aleksey
16.03.2018
11:08:38
все ясно. надо просто вернуться в прошлое и заюзать метод там

Alexander
16.03.2018
11:16:14
я не пользовался, пробовал просто https://github.com/richhollis/swagger-docs год назад, впечатление осталось как будто говна поел

а что норм работает? а если без grape?

Страница 1427 из 1684