【发布时间】:2014-05-28 03:48:18
【问题描述】:
我正在为我的控制器编写 rspec 测试,并尝试在 AJAX 请求触发操作时测试部分渲染。
在我的控制器代码中,我有:
def new
...
respond_to do |format|
format.html { render action: "new" }
format.js { }
end
end
我将文件new.html.erb 和new.js.erb 放置在正确的视图目录中。
我的 rspec 测试如下:
it "should render the new partial" do
get :new, :format => 'js'
response.should render_template(:partial => 'new')
end
执行此 rspec 测试时出现以下错误:
Failure/Error: response.should render_template(:partial => 'new')
expecting partial <"new"> but action rendered <[]>
有人能弄清楚我为什么会收到这个错误吗?我做错了什么?
谢谢
【问题讨论】:
-
正确!您发送 js 请求 (
get :new, :format => 'js') 并且控制器中的此代码format.js { }有效。我认为它不应该呈现任何部分。 -
但我如何测试它是否正确呈现
new.js.erb内容? -
也许可以试试
response.body -
尝试删除块
{ },所以它只变成format.js
标签: ruby-on-rails ajax rspec