Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何测试序列化列?_Ruby On Rails_Ruby_Tdd_Rspec Rails - Fatal编程技术网

Ruby on rails 如何测试序列化列?

Ruby on rails 如何测试序列化列?,ruby-on-rails,ruby,tdd,rspec-rails,Ruby On Rails,Ruby,Tdd,Rspec Rails,我的模型中包含以下内容: class MyModel < ActiveRecord::Base serialize :my_column, Array end 我正在使用gem“minitest rails shoulda” 有没有其他方法来测试这一点 Tanks序列化将对象存储在数据库中,因此需要测试保存后是否可以重新加载(YAML转换成功)。这样做: it "column serialize Array" do obj = MyModel.new obj.my_colum

我的模型中包含以下内容:

class MyModel < ActiveRecord::Base
 serialize :my_column, Array
end
我正在使用
gem“minitest rails shoulda”

有没有其他方法来测试这一点


Tanks

序列化
将对象存储在数据库中,因此需要测试保存后是否可以重新加载(YAML转换成功)。这样做:

it "column serialize Array" do
  obj = MyModel.new 
  obj.my_column = [1,2,3]
  obj.save!
  obj.reload.my_column.should == [1,2,3]
end
你可以用它来做

classmymodeltest
看看这个,一切都应该很简单


如果您使用的是Rails 5,请注意当前的情况。

我不需要知道它是否保存,因为序列化已经为我提供了保证。我只需要在我的模型中测试该列是否具有序列化数组。在我的测试中,我没有在数据库中保存任何东西,只是在特定情况下保存。
it "column serialize Array" do
  obj = MyModel.new 
  obj.my_column = [1,2,3]
  obj.save!
  obj.reload.my_column.should == [1,2,3]
end
class MyModelTest < ActiveSupport::TestCase
  should serialize(:my_column)
end