rspec показывает ошибки, где маршруты работают нормально - что случилось? - проблема ушла - PullRequest
1 голос
/ 18 июня 2011

Это странно.Этим утром я снова посмотрел на мою рабочую станцию ​​и запустил rspec spec /, чтобы попытаться получить некоторые примеры ошибок, которые будут показаны здесь. Все мои тесты пройдены успешно!Я не изменил ни один из источников, и я не думаю, что я что-то изменил в конфигурации или настройке (хотя я слишком плохо знаком с Mac, так что многие инструменты немного похожи на дым и зеркала для меня).

Теперь я нахожусь в положении, когда я знаю, что что-то было неправильно, но не знаю что, и я знаю, что теперь все в порядке, но я не знаю почему.

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

То, что следует теперь спорный вопрос ...

1010 * Работа через учебник я 5 простых маршрутов и 5 тестов просто доказать, что правильная страница возвращается, проверяя название в содержании.Все маршруты отлично работают через браузер, но rspec показывает 3 ошибки.

Это мои маршруты ...

match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
match '/signup', :to => 'users#new'  
root :to => 'pages#home'

rspec показывает, что / contact, / about и / help all getкорневая страница (неверная), но / signup получает правильную страницу./ также получает домашнюю страницу.

Моя учебная книга не содержит никаких дополнительных подробностей и просто ожидает, что пример кода будет работать.

Сгенерированный сайт работает нормально, он просто не тестирует ОК.Я могу продолжить обучение, но не хочу привыкать игнорировать неудачные тесты.

Кто-нибудь может предложить следующий шаг?

мои тесты ...

require spec_helper
  describe "LayoutLinks" do
  .
  it "should have a contact page at '/contact'" do
    get '/contact
    response.should have_selector('title', :content => "Contact")
  end 
  .
  it "should have a signup page at '/signup'" do
    get '/signup'
    response.should have_selector('title', :content => "Sign up")
  end
end

Мои контроллеры ...

class UsersController < ApplicationController
  def new
    @title = "Sign up"
  end
end

class PagesController < ApplicationController
  def contact
    @title = "Contact"
  end

  def home
    @title = "Home"
  end
  .
  .

end

Мой application.html.erb имеет

<title><%= @title %></title>

, и каждому представлению присваивается свой заголовок помощником

module ApplicationHelper
  def title
    base_title = "Ruby on Rails Tutorial Sample App"
    if @title.nil?
      base_title
    else
      "#{base_title} | #{@title}"
    end
  end
end

1 Ответ

0 голосов
/ 18 июня 2011

Вы используете spork?Если это так, при изменении ваших маршрутов (и некоторых других базовых конфигураций) вам необходимо перезапустить его, чтобы он принял ваши изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...