2013-01-22 21 views
1

我正在用rspec在我的rails 3.2應用程序中測試視圖。Rspec視圖測試不會呈現變化

我已經爲我的視圖編寫了測試,以包含一些額外的輸入字段,並且他們正確地失敗了。但是,添加所需的輸入字段後,測試仍會以相同的方式失敗。他們在終端輸出表格,就好像我沒有改變視圖中的任何內容。

當在瀏覽器中檢查視圖時,這些字段實際上存在,所以測試應該通過。

有rspec沒有加載最新的意見?

下面是一些代碼(我把它減少到兩個字段):

it "renders the form to sign up" do 
    rendered.should have_selector("form", action: "/users", method: "post") do |form| 
     form.should have_selector("input#user_email", name: "user[email]", type: "email") 
     form.should have_selector("input#user_city", name: "user[city]", type: "text") 
    end 
end 

電子郵件輸入是一個古老的輸入,我收到了,它也承認它。城市輸入是新的,它甚至不出現在終端的視圖輸出中。

我在做什麼錯?

回答

0

哇,這是一個棘手的問題。

我正在使用設計並希望測試其視圖。在我看來測試中,我說:

describe "devise/registrations/new" do 
    # code here 
end 

然而,有一天,我切換到範圍的意見,改變了查看文件夾的名字從devise相應users。如果您有不同的用戶模型(如useradmin),並且需要不同的視圖,則範圍視圖很好。您可以通過替換現有的範圍線config/initializers/devise.rb打開作用域的觀點:

config.scoped_views = true 

因此,我也有我的規格說明更改爲

describe "users/registrations/new" do # change to "users" instead of "devise" 
    # code here 
end 

因爲我沒有做到這一點,仍然呈現設計的標準視圖,當它在我的視圖文件夾中找不到任何視圖時,它會呈現這些視圖 - 因此,終端中的源代碼輸出表明它可以呈現正確的視圖,但缺少更新後的代碼。