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