Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 March 03

VM

Vasiliy M in Ruby, Rails, Hanami | dry-rb
‍🧞‍♂️
Есть генерация отчёта примерно 500 LoC очень связанного кода, причём ради производительности он был переписан на SQL без AR.

Теперь мне говорят пиши на него тесты.

Самое просто, что приходит в голову взять данных из продовой бд положить в фигчурез и подгружать перед тестом и чекать, что цифры на тех же данных те же получаются

Сел я писать дамп данных в yml и понимаю, что связанных таблиц штук 20 получается и это всё как-то муторно...

Другая гениальная идея, почисить БД оставить в ней записи только относящиеся к одному отчёту и в rspec before :suite делать pg_restore --data-only этих таблиц

Я пошёл к лиду и говорю вот, что ты про это думаешь? А он говорит нихрена я по этому поводу не думаю, погугли что там в инете пишут по поводу что делать "когда сложная структура тестовых данных нужна"

А вот мне кажется, что о таком не пишут, что если кто-то и использует успешно для тестов pg_dump/pg_restore, то никому об этом не говорит.
вроде делал в before инсерты
источник

f🤔

focusshifter 🤔 in Ruby, Rails, Hanami | dry-rb
‍🧞‍♂️
Есть генерация отчёта примерно 500 LoC очень связанного кода, причём ради производительности он был переписан на SQL без AR.

Теперь мне говорят пиши на него тесты.

Самое просто, что приходит в голову взять данных из продовой бд положить в фигчурез и подгружать перед тестом и чекать, что цифры на тех же данных те же получаются

Сел я писать дамп данных в yml и понимаю, что связанных таблиц штук 20 получается и это всё как-то муторно...

Другая гениальная идея, почисить БД оставить в ней записи только относящиеся к одному отчёту и в rspec before :suite делать pg_restore --data-only этих таблиц

Я пошёл к лиду и говорю вот, что ты про это думаешь? А он говорит нихрена я по этому поводу не думаю, погугли что там в инете пишут по поводу что делать "когда сложная структура тестовых данных нужна"

А вот мне кажется, что о таком не пишут, что если кто-то и использует успешно для тестов pg_dump/pg_restore, то никому об этом не говорит.
если хочется стандартными инструментами, то из существующих данных можно нагенерить fixtures через to_yaml
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
я б нарисовал тестовый сет, потому что это дает возможноть разные кейсы прогнать
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
а не наотьебись, цифра совпала
источник

‍🧞‍♂️ in Ruby, Rails, Hanami | dry-rb
Sergii Serogin
а не наотьебись, цифра совпала
Ну там грубо говоря несколько пользователей у них разные ситуации и если в отчёте все цифры совпадут с эталонными - это уже покрывает кучу кейсов.
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
хз
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
у нас тоже так
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
потому на тесты положили
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
🙂
источник

‍🧞‍♂️ in Ruby, Rails, Hanami | dry-rb
Логично)
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
там никогда не покроешь всю херню, какая может приехать в сырых данных
источник

RO

Roman O in Ruby, Rails, Hanami | dry-rb
Ребят, при использовании гема taglib-ruby (написан на c++) на стейджинге выводит ошибку такого формата при вызове любого метода этого гема. На локальной машине работает.

Именно здесь ругается на вызов метода frame_list из 106 строки моего кода.

libtag1-dev и clang на сервере стоит. Кто-нибудь сталкивался с таким?

Бэктрейс:

/app/lib/sound_parse.rb:106: [BUG] Segmentation fault at 0x0000007fc5000010
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0098 p:---- s:0828 e:000827 CFUNC  :frame_list
c:0097 p:0015 s:0823 e:000822 METHOD /app/lib/sound_parse.rb:106
c:0096 p:0082 s:0810 e:000809 BLOCK  /app/lib/sound_parse.rb:32
c:0095 p:0014 s:0804 e:000803 METHOD /usr/local/bundle/gems/taglib-ruby-0.7.1/lib/taglib/base.rb:8
c:0094 p:0050 s:0797 e:000796 METHOD /app/lib/sound_parse.rb:12
c:0093 p:0069 s:0788 e:000787 METHOD /app/app/controllers/sounds_controller.rb:174
c:0092 p:0012 s:0783 e:000782 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/basic_implicit_render.rb:4
c:0091 p:0010 s:0777 e:000776 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/base.rb:186
c:0090 p:0031 s:0771 e:000770 METHOD /usr/local/bundle/gems/actionpack-5.1.7/lib/action_controller/metal/rendering.rb:30
c:0089 p:0011 s:0766 e:000765 BLOCK  /usr/local/bundle/gems/actionpack-5.1.7/lib/abstract_controller/callbacks.rb:20
...
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
смотреть ldd на либу
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Nick
Ребят, помогите, создаю простой form object

require 'active_model'

class PreferencesForm
 include ActiveModel::Model

 attribute :enabled, :boolean, default: true
end

вылезает ошибка undefined method `attribute' for PreferencesForm:Class (NoMethodError)?

в чем проблема?

Rails 5.2.3 ruby 2.5.3
attr_accessor попробуй  вместо attribute и убери в ниншлайз тип
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
источник

N

Nick in Ruby, Rails, Hanami | dry-rb
Alex Iv
attr_accessor попробуй  вместо attribute и убери в ниншлайз тип
Да, так и сделал в итоге
источник

I

Ivan in Ruby, Rails, Hanami | dry-rb
че за тема?
источник

AI

Alex Iv in Ruby, Rails, Hanami | dry-rb
Ivan
че за тема?
Это скрин к предыдущему ответу. Запостил его отдельно от ответа ☝️Там был вопрос про FormObject
источник

AG

Akhmed Gasanov in Ruby, Rails, Hanami | dry-rb
Akhmed Gasanov
вот такое теперь происходит при возвратах к странице, тоже с турболинками беда?
такое не происходит когда таблица пустая. плиз хелп
источник

🐱

🐱 in Ruby, Rails, Hanami | dry-rb
кто-нибудь знает, можно в ActiveAdmin'е сделать кастомные динамические (т.е. с формочками) страницы? в общем, как обычные view/controller в рельсе, только интегрированные в админку
источник