RSPEC测试控制器渲染视图?

时间:2015-04-17 03:56:32

标签: ruby-on-rails testing rspec controller

所以我很擅长使用RSPEC进行测试

我只是测试我的控制器的渲染:

describe "GET job" do 
  it "renders the jobs view" do 
  get :jobs
  expect(response).to render_template :jobs
end

但是我的视图(作业)是一个文件夹,而不是模板,所以上面的dosnt工作。我如何测试以查看响应是否转到作业视图文件夹。在我的工作视图文件夹中,我有许多不同的文件。

我的客户控制器操作如下:

 def jobs
    @jobs = @customer.jobs
 end

2 个答案:

答案 0 :(得分:2)

要测试foobar内的app/views/jobs/模板,请使用此代码:

describe "GET job" do 
  it "renders the jobs view" do 
  get :jobs
  expect(response).to render_template :foobar
end

如果您没有测试JobsController并希望确保它仍然呈现app/views/jobs/foobar,那么您应该将其更改为此行:

expect(response).to render_template("jobs/foobar")

答案 1 :(得分:0)

理想情况下,在rspec控制器中,测试视图呈现默认为存根。要检查控制器规范中的视图渲染,您必须执行以下操作:

describe "GET job" do 
  render_views

  it "renders the jobs view" do 
  get :jobs

  expect(response).to render_template("jobs/foobar")
end

其中render_views将渲染控制器操作的相应视图。