我的模型中有这个:
class MyModel < ActiveRecord::Base
serialize :my_column, Array
end
我该如何测试?
今天我正在测试这个:
it "column serialize Array" do
subject.my_column.is_a?(Array).must_equal true
end
我正在使用gem "minitest-rails-shoulda"
还有其他方法可以测试吗?
罐
答案 0 :(得分:2)
您可以使用shoulda-matchers完成此操作。
class MyModelTest < ActiveSupport::TestCase
should serialize(:my_column)
end
查看code comments,一切都应该非常简单。
如果您使用的是Rails 5,请注意当前有an issue。
答案 1 :(得分:0)
serialize
在db中存储一个对象,因此您要测试可以在保存后重新加载(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