我有一堆序列化器。现在我想将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,因为它不是预期的格式
答案 0 :(得分:0)
我能想到的最好的方法是使用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_widget