2012-12-22 33 views
1

我試圖創建錯誤消息的測試,顯示如果無效數據輸入到邁克爾哈特爾的鐵軌教程的註冊表單中練習2.他提供了一個「建議開始」:Hartl的Rails教程第7章練習2.我卡住創建錯誤消息的測試

describe "signup" do 

before { visit signup_path } 
. 
. 
. 
    describe "with invalid information" do 
    . 
    . 
    . 
    describe "after submission" do 
    before { click_button submit } 

    it { should have_selector('title', text: 'Sign up') } 
    it { should have_content('error') } 
    end 

我的想法是在'錯誤'之後添加一些東西。但迄今爲止還沒有奏效。使用剛纔我得到RSpec錯誤信息:

1) UserPages signup with invalid information after submission it should 
Failure/Error: it { should have_selector('error') } 
    expected css "error" to return something 
# ./spec/requests/user_pages_spec.rb:37:in `block (5 levels) in <top (required)>' 

我已經吹噓教程,直到這一點。而且我認爲我的測試最多了!建議?

+0

你顯示的代碼和錯誤不匹配。 –

+0

正如Paul提到的,錯誤信息是關於'have_selector('error')'和代碼有'have_selector('title'..)'&'have_content('error')';他們不匹配。請檢查錯誤跟蹤指向的'。/ spec/requests/user_pages_spec.rb'中第#37行的代碼。 –

+0

你說得對。這是我沒有挽救我所做的改變的事實。哈哈!感謝新鮮的眼睛! –

回答

0

歡迎來到StackOverflow和Rails社區。

這是很好,你正在學習編寫自動化測試。您應該嘗試的第一件事是訪問您在瀏覽器中構建的Web應用程序的這個頁面。你能觸發你期待的驗證錯誤嗎?你是否在頁面上看到它的CSS錯誤類應用於它的容器?您可以使用Web檢查器/調試器工具來檢查所有這些。

您看到的錯誤意味着自動化測試期望在CSS類「錯誤」的頁面上找到DOM元素,但是沒有元素正在返回。

我敢打賭,如果您自己查看網頁,您可以找出爲什麼它不會觸發驗證錯誤並查看您期望的顯示。

祝你好運

+0

感謝您的迴應!我用Firebug檢查了它(我仍然習慣)並且能夠解決這個問題。 –

+0

太好了。我很高興你解決了這個問題。你介意接受這個答案,因爲它聽起來像會將你引向你的解決方案? – Winfield

相關問題