我正在寻找一种干净的方式来使用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