Ruby: Как записать объект и использовать его для тестов? - PullRequest
1 голос
/ 27 мая 2019

В Ruby-on-Rails, как записать объект и его состояние (в режиме разработки), чтобы я мог использовать его для целей тестирования? Например, объект запроса, но в целом любой сложный объект, независимо от того, владею ли я определением класса или нет.

1 Ответ

2 голосов
/ 27 мая 2019

Один из вариантов - использовать Marshal, который изначально встроен в ruby ​​(т. Е. Не относится к Rails).Вы можете использовать Marshal для сериализации объектов в строки через serialized_obj = Marshal.dump(my_object).Вы можете сохранить эти строки в файлах и затем десериализовать их в своем наборе тестов через my_obj = Marshal.load(serialized_obj).Вот пример из этой замечательной рецензии Мехди Фарси: https://blog.appsignal.com/2019/03/26/object-marshalling-in-ruby.html.

hello_world = 'hello world!'

serialized_string = Marshal.dump(hello_world) # => "\x04\bI\"\x11hello world!\x06:\x06ET"
serialized_string.class                       # => String

deserialized_hello_world = Marshal.load(serialized_string) # => "hello world!"

hello_world.object_id              # => 70204420126020
deserialized_hello_world.object_id # => 70204419825700
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...