2012-06-03 3 views
0

Я выполнил все инструкции в главе 7 Учебник Ruby on Rails, когда я, наконец, запускаю $ Bundle exec rspec spec/появляется серия ошибок. Я дважды проверял, были ли у моих кодов какие-либо орфографические ошибки или какие-либо символы были опущены. Кажется, все в порядке. Не могли бы вы любезно интерпретировать ошибки и сказать мне, где я ошибаюсь? БлагодарностиГлава 7 Ошибка Ruby on Rails users_controller.rb

USER_PAGES_SPEC.RB

require 'spec_helper' 

describe "User pages" do 

    subject { page } 

    describe "signup page" do 
    before {visit signup_path} 

    it { should have_selector('h1', text: 'Sign ') } 
    it { should have_selector('title', text: full_title('Sign up')) } 
    end 

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

    before { visit user_path(user) } 

    it { should have_selector('h1', text: user.name) } 
    it { should have_selector('title', text: user.name) } 
    end 

    describe "signup" do 

    before { visit signup_path } 

    let(:submit) { "Create my account" } 

    describe "with invalid information" do 
     it "should not create a user" do 
     expect { click_button submit }.not_to change(User, :count) 
     end 
    end 

    describe "with valid information" do 
     before do 
     fill_in "Name",   with: "Example User" 
     fill_in "Email",  with: "[email protected]" 
     fill_in "Password",  with: "foobar" 
     fill_in "Confirmation", with: "foobar" 
     end 

     it "should create a user" do 
     expect { click_button submit }.to change(User, :count).by(1) 
     end 

     describe "after saving a user" do 
     before {click_button submit} 

     let (:user) {user.find_by_email("[email protected]")} 

     it {should have_selector('title', text:user.name)} 
    end 
    end 
end 
end 

USER_CONTROLLER.RB

class UsersController < ApplicationController 

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

    def new 
    @user = User.new 
    end 

    def create 
    @user = User.new(params[:user]) 

    if @user.save 

    sign_in @user 

    flash[:success] = "Welcome to the Sample App!" 

    redirect_to @user 

    else 

    render 'new' 
    end 
    end 
end 

ОШИБКИ ОТОБРАЖЕНИЕ в командной строке

3) User pages signup page 
←[31mFailure/Error:←[0m ←[31mit { should have_selector('title', text: full_ 

названия ('Зарегистрироваться'))} ← [0й ← [31mNoMethodError: ← [0й ← [31mundefined метод full_title' for #<RSpec::Core::ExampleGroup::Neste d_2::Nested_1:0x461b260>←[0m ←[36m # ./spec/requests/user_pages_spec.rb:11:in блока (3 уровня) в «← [0m

страницы 4) Профиль пользователя страницы ← [ 31mFailure/Error: ← [0m ← [31mit {should have_selector ('title', text: user. name)} ← [0m ← [31mexpected css «title» с текстом «Michael Hartl», чтобы вернуть что-то ← [ 0m ← [36m # ./spec/requests/user_pages_spec.rb:19:in `block (3 уровни) в «← [0й

5) пользователя страницы подписаться с действительной информацией должны создать пользователь ← [31mFailure/ошибку: ← [0й ← [31mexpect {click_button представить} .to изменения (Пользователь, : число) .by (1) ← [0й ← [31mNoMethodError: ← [0й ← [31mundefined метод sign_in' for #<UsersController:0x45a8f00>←[0m ←[36m # ./app/controllers/users_controller.rb:14:in создать '← [0й ← [36m # (Eval): 2: в click_button'←[0m ←[36m # ./spec/requests/user_pages_spec.rb:43:in блоке (5 уровней) в' ← [0й ← [36m # ./spec/requests/user _pages_spec.rb: 43: в `блока (4 уровня) в«← [0й

6) пользователь страницы подписаться с действительной информацией после сохранения пользователя ← [31mFailure/Ошибки: ← [ого ← [31mbefore {click_button представить } ← [0й ← [31mNoMethodError: ← [0й ← [31mundefined метод sign_in' for #<UsersController:0x46341c0>←[0m ←[36m # ./app/controllers/users_controller.rb:14:in создать '← [0й ← [36m # (Eval): 2: в click_button'←[0m ←[36m # ./spec/requests/user_pages_spec.rb:47:in блоке (5 уровней) в' ← [0m

+1

У вас есть модель/user.rb? –

+0

@muistooshort Привет Спасибо за помощь. Я думал, что файл user.rb сохранен, но, видимо, это не так! Но у меня есть новые 4 ошибки :(, я обновил запрос с новыми ошибками, если у вас есть шанс, пожалуйста, помогите мне. Спасибо – user1422120

ответ

0

1) undefined method full_title

Вы это определили?

2) expected css "title" with text "Michael Hartl" to return something

У вас нет <title>Michael Hartl</title> в выводе html.

3, 4) undefined method sign_in

Где вы его определяли?

Исправьте свой код, и все тесты пройдут.

+0

Hi Jan Спасибо за вашу помощь.Наконец я нашел ошибку. В предыдущей главе мне пришлось опустить «<% = full_title (yield (: title))%>», который поставляется под приложением/views/layouts/application.html.erb для прохождения теста. Я просмотрел все свои файлы и снова вставил код. И тест прошел успешно :) – user1422120

Смежные вопросы