如果控制器只使用javascript响应,那么如何在Rspec中测试控制器?例如,这将是我的实际代码:
一些view.html.erb
link_to 'More Chips', add_chips_path, :remote => true
chips_controller
def add_chips
Chips.create(:color => :red)
@chips = Chips.all
end
add_chips.js.erb
$('#chip_count').html('<%=j render("chips/list", :chips => @chips) %>');
Rspec测试
规范/控制器/芯片控制器规范
it "should add chips" do
post :add_chips, :format => 'js'
end
当我尝试使用RSpec发布时,我得到了一个缺少模板的错误,因为它正在发送一个超文本标记语言请求,但是没有超文本标记语言视图。我尝试过传入一种格式,但似乎不起作用。我知道我可以放入一个“虚拟的”html视图来让它通过,但这看起来像是一个hack。
谢谢
发布于 2012-09-28 09:57:25
好了,我知道我做错了什么。我在我的测试中传递了一个参数散列,该格式需要包含在相同的散列中。因此,不是这样:
@params = {:chip_color => 'red'}
...
post :add_chips, @params, :format => 'js'
它需要看起来像这样
@params = {:chip_color => 'red', :format => 'js'}
...
post :add_chips, @params
https://stackoverflow.com/questions/12604096
复制相似问题