2013-05-21 164 views
0

在教程中繼續討論之前,我花了幾個小時試圖弄清楚這個小小的謎題,所以它不會炸燬我的後來。因此,我知道測試失敗的問題,因爲這些都是一毛錢,所以我很抱歉。在本教程的「7.1.3測試用戶展示頁面(帶工廠)」部分(下面提供的鏈接)中,我無法通過註冊頁面測試。這似乎是如此微不足道,但在任何可能存在問題的表面上無盡的文件(控制器,路由,測試本身,用戶模型等)中我找不到任何錯誤。沒有人在線似乎也有這個問題,所以我認爲這應該是一些隨機設置或我的rails項目上的東西。Ruby on Rails教程Michael Hartl第7.1.3章 - 未通過測試

總之,這裏是我認爲這是相關代碼:
錯誤從崇高運行user_pages_spec測試:

Failures: 

    1) User pages signup page 
    Failure/Error: it { should have_content('Sign up') } 
     expected #has_content?("Sign up") to return true, got false 
    # ./spec/requests/user_pages_spec.rb:18:in `block (3 levels) in <top (required)>' 

    2) User pages signup page 
    Failure/Error: it { should have_title(full_title('Sign up')) } 
     expected #has_title?("Ruby on Rails Tutorial Sample App | Sign up") to return true, got false 
    # ./spec/requests/user_pages_spec.rb:19:in `block (3 levels) in <top (required)>' 

Finished in 0.16194 seconds 
4 examples, 2 failures 

Failed examples: 

rspec ./spec/requests/user_pages_spec.rb:18 # User pages signup page 
rspec ./spec/requests/user_pages_spec.rb:19 # User pages signup page 

Randomized with seed 46255 

[Finished in 2.7s with exit code 1] 

規格/請求/ user_pages_spec.rb

require 'spec_helper' 

describe "User pages" do 

    subject { page } 

    describe "profile page" do 
    let(:user) { FactoryGirl.create(:user) } 
    before { visit user_path(user) } 

    it { should have_content(user.name) } 
    it { should have_title(user.name) } 
    end 

    describe "signup page" do 
    before { visit signup_path } 

    it { should have_content('Sign up') } 
    it { should have_title(full_title('Sign up')) } 
    end 
end 

app/views/users/new.html.erb

<% provide(:title, 'Sign Up') %> 
<h1>Sign Up</h1> 
<p>Find me in app/views/users/new.html.erb</p> 

應用程序/控制器/ users_controller.rb

class UsersController < ApplicationController 

    def show 
    @user = User.find(params[:id]) 
    end 

    def new 
    end 
end 

的config/routes.rb中

SampleApp::Application.routes.draw do 
    resources :users 
    root to: 'static_pages#home' 
    match '/signup', to: 'users#new',   via: 'get' 
    match '/help', to: 'static_pages#help', via: 'get' 
    match '/about', to: 'static_pages#about', via: 'get' 
    match '/contact', to: 'static_pages#contact', via: 'get' 
end 

讓我知道,如果你能想到的任何其他代碼你可能需要看。我包含new.html.erb,因爲我認爲註冊測試正在該頁面上查找,但我必須在此上錯誤。如果有人能讓我知道我在做什麼錯誤導致了這個失敗,我會永遠感激。

如果你能讓我相信整個測試驅動的開發理念並不是後方的完全痛苦,那麼你可以得到一些額外的布朗尼點。我發現本教程非常令人愉快,但是每當我進入測試部分時,我都會失去繼續學習的動力,特別是當它不起作用時。我知道從長遠來看對你的代碼更好,但對於剛剛開始,我開始認爲我應該忽略它有退出的風險。

http://ruby.railstutorial.org/book/ruby-on-rails-tutorial?version=4.0#code-name_title_and_heading

+0

如果您將一個註冊測試替換爲「it」foo「,則會發生什麼情況? save_and_open_page; subject.should have_content('註冊');結束' –

+0

你有一個users_controller.rb文件嗎?測試(如果寫得正確)告訴你代碼有問題。這可能很煩人,但比最終用戶的電子郵件告訴你同樣的事情要少得多... – PinnyM

+0

@AmitKumarGupta,該測試失敗。 – Aaron14

回答

2

你試圖通過 '註冊' 你規格/請求/ user_pages_spec.rb替換 '註冊'?

+1

哦......我的......天啊......我覺得很愚蠢。我已經編程了好幾年,並且多次查看了我的代碼,出於某種原因,我從來沒有想過要嘗試這些。測試代碼與指南中的完全一樣,所以也許他也有一個錯字。無論如何,我愛你@FloRahl。這已經讓我痛苦萬分,並且都是因爲小寫字母U啊 – Aaron14

+2

啊啊!我遇到過很多次相同的問題!語法錯誤是我最好的能力:-)很高興得到了一些幫助。 –

相關問題