2015-04-17 147 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將呈現一個控制器動作的各自的看法。