2015-04-17 146 views
1

所以我非常新的测试与RSPECRSPEC测试控制器渲染视图?

我只是在测试我的控制器的渲染,像这样:

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 
+0

该文件夹中的哪个模板是应由作业操作呈现的模板? – infused

+0

render_template(“jobs/foobar”) –

回答

1

要测试foobarapp/views/jobs/呈现模板,你应该使用此代码:如果您不是测试JobsController

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

,并会喜欢确保它仍然呈现app/views/jobs/foobar那么你应该改变它到这一行:

expect(response).to render_template("jobs/foobar") 
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将呈现一个控制器动作的各自的看法。