我有一堆序列化程序。现在我想把JSON转换回原来的对象进行测试。我看不到使用ActiveModel::Serializers可以做到这一点。看起来以前有一个from_json方法被弃用了。你应该怎么做呢?
基本上,我想像这样测试往返:
json = WidgetSerializer.new(@widget).to_json
testw = Widget.new
testw.from_json(json) #from_json doesn't exist in ActiveModel::Serializers
@widget.should == testw但是模型上的"from_json“方法没有从序列化程序中正确地读取json,因为它不是预期的格式
发布于 2015-09-11 20:32:07
我能想到的最好方法是使用Widget.find()或Widget.find_by(),这取决于您传递给序列化器的属性(尤其是当其中一个属性是唯一属性时)。
例如,如果序列化程序包含id (在本例中是最简单的):
json = WidgetSerializer.new(@widget).to_json
target_id = JSON.parse(json)[:id]
test_widget = Widget.find(target_id)
@widget.should == test_widgethttps://stackoverflow.com/questions/25648785
复制相似问题