在教程中繼續討論之前,我花了幾個小時試圖弄清楚這個小小的謎題,所以它不會炸燬我的後來。因此,我知道測試失敗的問題,因爲這些都是一毛錢,所以我很抱歉。在本教程的「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
如果您將一個註冊測試替換爲「it」foo「,則會發生什麼情況? save_and_open_page; subject.should have_content('註冊');結束' –
你有一個users_controller.rb文件嗎?測試(如果寫得正確)告訴你代碼有問題。這可能很煩人,但比最終用戶的電子郵件告訴你同樣的事情要少得多... – PinnyM
@AmitKumarGupta,該測試失敗。 – Aaron14