1
我有一堆序列化器。現在我想將JSON轉換回原始對象進行測試。我沒有看到用ActiveModel :: Serializer做到這一點的方法。看起來好像曾經是一個不贊成使用的from_json方法。你應該如何做到這一點?如何解析json從ActiveModel :: Serializer回到對象
基本上我要測試的輪跳閘這樣的:
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
不幸的是,它會從數據庫中獲取對象,而不是json,這會打敗單元測試的目的。 (我沒有明確地說它的單元測試,但「.should ==」是一個提示) – nont 2015-09-13 02:53:45
當然,它從數據庫中獲取它,否則它怎麼會是==?即使您的from_json方法返回具有完全相同屬性的新Widget,「id」和「created_at」值也會不同。 (我意識到你要求進行單元測試,但是我不太明白你正在測試什麼 - 你還沒有忘記在串行器中包含所有屬性?) – Matthieu 2015-09-14 06:45:00
是的,我想測試序列化器的工作原理。它是一個帶有嵌套子對象的複雜對象。 – nont 2015-09-15 00:39:48