使用RSpec在控制器中测试render方法

时间:2010-10-20 14:29:07

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2

我正在尝试使用RSpec(2.x)测试控制器中的render方法。 这是我的控制器中的代码:

respond_to do |format|
  format.html # index.html.erb
  format.json { render :json => @entities, :include => :properties, :overview => options[:overview] }
end

这是我在我的spec文件中尝试的测试:

controller.should_receive(:render).with( hash_including(:overview => true) )

问题是RSpec告诉我没有为render提供参数(“got:(no args)”)。甚至不是:json one。如何正确存根渲染方法?

1 个答案:

答案 0 :(得分:4)

如果要测试render :json,只需检查响应是否包含JSON字符串。

简化示例:response.body.should == @object.to_json

如果您只想使用controller.stub!(:render)

来存根渲染方法