튜토리얼에서 계속 진행하기 전에 퍼즐의 작은 조각을 알아 내려고 몇 시간을 보냈습니다. 후에. 그렇기 때문에 테스트가 실패한 문제를 한두 다스 정도 알고 있으므로 사과드립니다. "7.1.3 사용자 쇼 페이지 테스트 (공장 포함)"섹션 (아래 제공된 링크)에서 필자는 가입 페이지 테스트를 통과 할 수 없습니다. 이것은 매우 사소한 것처럼 보이지만 문제 (컨트롤러, 경로, 테스트 자체, 사용자 모델 등)가있을 수있는 겉으로보기에 끝이없는 파일에서는 아무 것도 잘못 찾을 수 없습니다. 아무도 온라인으로이 문제를 겪지 않은 것 같아요. 그래서 그것은 무작위적인 설정이나 내 레일 프로젝트의 무언가가되어야한다고 생각합니다.
오류 숭고한에 user_pages_spec 테스트를 실행 한 :Michael Hartl의 Ruby on Rails 튜토리얼 Chapter 7.1.3 - 실패 테스트
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
설정/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"do; save_and_open_page; subject.should have_content ('가입'); end' –
users_controller.rb 파일이 있습니까? 테스트 (올바르게 작성된 경우)는 코드에 문제가 있음을 알려줍니다. 그게 성가신 수 있습니다,하지만 훨씬 덜 성가신 최종 사용자의 이메일보다 똑같은 얘기 ... – PinnyM
@AmitKumarGupta, 그 테스트가 실패합니다. – Aaron14