我正在尋找一種乾淨的方式來使用JBuilder並使用RSpec測試json輸出。 JSON測試的常用方法是實現as_json方法,然後在RSpec中將接收到的對象與object.to_json方法進行比較。但是我使用JBuilder的一個重要原因是我不想要to_json吐出的所有屬性;所以這打破了比較。如何在JBuilder中使用RSpec?
用JBuilder的目前我在做以下測試RSpec的結果:
1)創建一個工廠對象:@venue
2)創建一個散列我的RSpec的測試裏面包含「expected」JSON string back
@expected => {:id => @venue.id,:name=>@venue.name..........}
2)將@expected字符串與從JSON調用返回的results.response.body進行比較。
這看起來很簡單,除了我有15+屬性呈現對象,並且構建@expected哈希字符串很麻煩而且非常脆弱。有一個更好的方法嗎?
我一直在做這件事。我想不出一個更好的方法來做到這一點。 我構建了一個散列並在'@ expected'上應用'.to_json'。 我做的一件事就是加快速度,讓它變脆。也許是以犧牲準確性爲代價的? 是用集合和地圖來構建我的哈希。 我想用任何JSON字符串構建庫構建自定義模板的特定性質需要你編寫一個測試來匹配你所做的工作的細節..:/ – stuartc 2012-07-09 09:38:05
@beeudoublez你能夠使用RSpec來測試jbuilder視圖嗎?我無法讓rspec將對象傳遞給視圖,以便jbuilder處理程序構造JSON。你有一個工作視圖'* _spec.rb'文件的例子嗎? – sorens 2012-10-11 04:20:12