加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rspec:如何修复marshal格式版本4.8所需; 34.9

发布时间:2020-12-17 02:10:06 所属栏目:百科 来源:网络整理
导读:我目前正在编写rspec测试,其中我需要使用存储在对象中的一些“真实世界”数据. 要在rspec测试中使用这些对象,我使用Marshal.dump(array_of_objects)并使用Marshal.load(File.read(“spec / fixtures / file_name_here”))将它们加载到规范中. 不幸的是,我一
我目前正在编写rspec测试,其中我需要使用存储在对象中的一些“真实世界”数据.

要在rspec测试中使用这些对象,我使用Marshal.dump(array_of_objects)并使用Marshal.load(File.read(“spec / fixtures / file_name_here”))将它们加载到规范中.

不幸的是,我一直遇到一个错误,我不明白如何解决(尽管阅读很多人有同样的问题):

*** TypeError Exception: incompatible marshal file format (can't be read)
    format version 4.8 required; 34.92 given

有没有办法解决这个问题,所以我可以运行测试?

解决方法

虽然我还没有解决最初的问题,但我想我可能会分享我是如何解决它的.

相反,我使用YAML将对象数组转储到文件中:

File.open(file_name,'w') { |file| file.write(YAML.dump(array_of_objects)) }

然后我用YAML加载了该文件:

YAML.load(File.read("file_location"))

看起来这比使用Marshal更好,因为上面的问题没有提到版本问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读