저는 Michael Hartl 's Rails 튜토리얼의 7.1.3 섹션에 있으며 FactoryGirl이 테스트에서 올바르게 작동하도록 할 수 없습니다. 그것은 이전에 후크에 User.create를 사용하여 User를 생성하려고 시도했기 때문에 FactoryGirl에서 문제가되지 않았으며 동일한 문제가있었습니다. 여기에 내가지고있어 결과는 다음과 같습니다 : I 테스트가 실행되었을 때 브라우저에서 오류의 스크린 샷을했다 rspec 테스트가 Hartl 's Rails 튜토리얼의 7 장에서 작동하지 않습니다.
:. (콘솔에서 결과를 볼 수있는 방법을 찾을 수 없습니다 그들은했다 나는 시험 콘솔을 실행했을 때 보여주지.) I는 서버와 콘솔을 다시 시작했다. 테스트 환경에서 마이그레이션을 수행하여 최신 상태로 유지하십시오.
다음은 내 파일입니다. 또한 https://github.com/cjaypierson/sample_app/tree/sign-up
사양/요청/user_pages_spec.rb
require 'rails_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
사양/factories.rb
FactoryGirl.define do
factory :user do
name "Ed Sullivan"
email "[email protected]"
password "foobar"
password_confirmation "foobar"
end
end
사양에서 GitHub의에서이 작업을 찾을 수 있습니다/spec_helper.rb
require File.expand_path('config/environment.rb')
require 'capybara'
require 'capybara/rails'
require 'capybara/rspec'
require 'factory_girl_rails'
require 'support/utilities.rb'
Capybara.default_driver = :selenium
RSpec.configure do |config|
config.include Capybara::DSL
end
뷰/사용자/show.html.erb
,<% provide(:title, @user.name) %>
<h1><%= @user.name %></h1>
모델/user.rb
class UsersController < ApplicationController
def new
end
def show
@user = User.find(params[:id])
end
end
컨트롤러/users_controller.rb
class UsersController < ApplicationController
def new
end
def show
@user = User.find(params[:id])
end
end
Gemfile
source 'https://rubygems.org'
ruby '2.1.1'
#ruby-gemset=railstutorial_rails_4_0_5
gem 'rails', '4.1.1'
gem 'bootstrap-sass', '2.3.2.0'
gem 'sprockets', '2.11.0'
gem 'bcrypt-ruby', '3.1.2'
gem 'pg'
gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets'
group :development, :test do
gem 'rspec-rails'
gem 'capybara'
end
group :test do
gem 'selenium-webdriver'
gem 'factory_girl_rails'
end
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'rails_12factor', '0.0.2'
end
schema.rb
ActiveRecord::Schema.define(version: 20140708142214) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "users", force: true do |t|
t.string "name"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string "password_digest"
end
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
end
database.yml을
default: &default
adapter: postgresql
pool: 5
timeout: 5000
development:
<<: *default
encoding: unicode
database: sadevelopment
test:
<<: *default
encoding: unicode
database: satest
도움을 주셔서 감사합니다.
감사 지적에 대한 그의 튜토리얼을 통해 갈 때 당신이 학습하는 경우 https://relishapp.com/rspec/docs/upgrade
은, 내가보기 엔 당신은 그가하는 같은 보석 버전을 사용하는 것이 좋습니다 : 여기에 언급 한 바와 같이 RSpec에 3, 많은 주요 변경이 있습니다 그거. 그래도 나는 여전히 같은 오류가 발생합니다. FactoryGirl을 사용하지 않고 코드를 테스트하려고 시도한 후 그 코드를 변경하는 것을 잊어 버렸습니다. 질문의 코드도 업데이트했습니다. – cjaypierson