gpt4 book ai didi

ruby-on-rails-3.1 - 使用Javascript进行Rspec Controller 测试

转载 作者:行者123 更新时间:2023-12-03 12:23:20 25 4
gpt4 key购买 nike

如果 Controller 仅使用javascript响应,如何在Rspec中测试 Controller ?例如,这将是我的实际代码:

一些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测试

规格/ Controller / chips_controller_spec
it "should add chips" do 
post :add_chips, :format => 'js'
end

当我尝试使用RSpec发布到此页面时,我收到一个Missing Template错误,因为它正在发送HTML请求,但没有HTML View 。我尝试过以一种格式传递,但这似乎不起作用。我知道我可以放入“虚拟” html View 以使其通过,但这似乎很简单。

谢谢

最佳答案

如果您尝试从 Controller 规范执行Ajax请求,而不是执行post :add_chips并将format作为参数传递,则应该执行以下操作:

xhr :post, :add_chips, @params

...在参数中没有 format。这将执行JavaScript请求,并使用 .js模板进行响应。

更新:

在最新版本的Rails / RSpec中,您应该改为:
post :add_chips, params: @params, xhr: true

关于ruby-on-rails-3.1 - 使用Javascript进行Rspec Controller 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com