RailsTutorial 3.2 Ch 9 - «before {valid_signin (user)})» приводит к сбою теста RSpec - PullRequest
1 голос
/ 21 февраля 2012

Я сейчас нахожусь в RailsTutorial 3.2, Раздел 9.3.1 Индекс пользователя .

Листинг 9.27 направляет редактирование кода spec/requests/authentication_pages_spec.rb следующим образом:

require 'spec_helper'

describe "Authentication" do
    .
    .
    .
    describe "with valid information" do
      let(:user) { FactoryGirl.create(:user) }
      before { valid_signin(user) }

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

      it { should have_link('Users',    href: users_path) }
      it { should have_link('Profile',  href: user_path(user)) }
      it { should have_link('Settings', href: edit_user_path(user)) }
      it { should have_link('Sign out', href: signout_path) }

      it { should_not have_link('Sign in', href: signin_path) }
      .
      .
      .
    end
  end
end

После этого соответствующий раздел тестов завершается неудачно. Я очень добросовестно следовал этому руководству, поэтому в остальном мой код и настройки практически идентичны.

После тестирования нескольких вещей я обнаружил, что изменение

before { valid_signin(user) } 

строка для чтения

before { sign_in user }

вместо этого снова выполнит все тесты. Есть ли что-то в строке valid_signin(user), которая синтаксически отключена, или это указывает на ошибку в другом месте моего кода?

(Приложение работает точно так, как и должно быть, это просто тест, который говорит, что это не так.)

Ответы [ 2 ]

2 голосов
/ 22 февраля 2012

Если вы посмотрите на листинг 8.34, вы увидите def valid_signin в файле spec / support / utilities.rb.

0 голосов
/ 04 апреля 2012

Я считаю, что большая часть «необязательной» работы необходима для работы следующего кода.FYI

...